Nacos参数配置详解

Nacos客户端版本

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.1.0.RELEASE</version>
</dependency>

参数配置详解

com.alibaba.nacos.naming.log.level

Naming客户端的日志级别,改属性通过客户端启动时通过命令行加参数指定

注:默认为info

spring.cloud.nacos.discovery.heart-beat-interval: 

nacos客户端向服务端发送心跳的时间间隔,默认5s

注:客户端向服务端每隔5s向服务端发送心跳请求,进行服务续租,告诉服务端该实例IP健康。若在3次心跳的间隔时间(默认15s)内服务端没有接受到该实例的心跳请求,则认为该实例不健康,该实例将无法被消费。如果再次经历3次心跳的间隔时间,服务端接受到该实例的请求,那么会立刻将其设置外健康,并可以被消费,若未接受到,则删除该实例的注册信息。推荐配置为5s,如果有的业务线希望服务下线或者出故障时希望尽快被发现,可以适当减少该值。

spring.cloud.nacos.discovery.heart-beat-timeout: 

服务端没有接受到客户端心跳请求就将其设为不健康的时间间隔,默认为15s

注:推荐值该值为15s即可,如果有的业务线希望服务下线或者出故障时希望尽快被发现,可以适当减少该值。

spring.cloud.nacos.discovery.log-name: 

nacos客户端会在启动时打印一部分发送注册请求信息和异常日志,可以通过日志查看注册的nacos集群地址、服务名、nameSpace、IP、元数据等内容,文件名默认为naming.log

注:推荐将该日志的位置设置为和其他日志在一个文件夹下

spring.cloud.nacos.discovery.metadata: 

给服务添加一些标签,例如属于什么业务线,该元数据会持久化存储在服务端,但是客户端消费时不会获取到此值,默认为空
注:推荐为空,我们可以通过已经注册的服务名来找到具体的业务线,无需添加metadata

spring.cloud.nacos.discovery.namespace:

命名空间ID,Nacos通过不同的命名空间来区分不同的环境,进行数据隔离,服务消费时只能消费到对应命名空间下的服务。

注:开发和测试环境通过Jenkins部署时,Jenkins会默认将该值替换成对应环境下的namespace,无需人工修改。生产和预发环境namespace为空,对应的命名空间为public,预发和正式的服务通过服务名的后缀区分服务(预发后缀为pre,生产后缀为prod)

spring.cloud.nacos.discovery.naming-load-cache-at-start: 

默认为false。客户端在启动时是否读取本地配置项(一个文件)来获取服务列表

注:推荐该值为false,若改成true。则客户端会在本地的一个文件中保存服务信息,当下次宕机启动时,会优先读取本地的配置对外提供服务。

spring.cloud.nacos.discovery.port: 

向nacos注册服务时,服务对应的端口号

注:无需修改,默认为应用对外提供服务的端口号,server.port

spring.cloud.nacos.discovery.register-enabled:

该项目是否向注册中心注册服务,默认为true

注:如果服务从注册中心只消费服务,没有对外提供服务,那么该值可设置为false,可减少客户端线程池的创建,无需向服务端发送心跳请求,提高性能。

spring.cloud.nacos.discovery.server-addr

nacos集群地址。

注:多个IP可以通过“,”号隔离,例如192.168.80.1:8848,192.168.80.1:8848  填写域名时前缀不要加上http://

spring.cloud.nacos.discovery.service:  项目向注册中心注册服务时的服务名,默认为

spring.application.name 变量
注:该服务名必须使用小写,因为nacos服务名区分大小写,如果服务名不完全匹配,那么无法调用服务

spring.cloud.nacos.discovery.watch-delay: 

默认为30s。默认为true,客户端在启动时会创建一个线程池,该线程定期去查询服务端的信息列表,该请求不会立刻返回,默认等待30s,若在30s内,服务端信息列表发生变化,则该请求立刻返回,通知客户端拉取服务端的服务信息列表,若30s内,没有变化,则30s时该请求返回响应,客户端服务列表不变,再次发生该请求。

注:推荐该值为30s即可,无需修改

spring.cloud.nacos.discovery.watch.enabled: 

默认为true,默认为true,客户端在启动时会创建一个线程池,该线程定期去查询服务端的信息列表,该请求不会立刻返回,默认等待30s,若在30s内,服务端信息列表发生变化,则该请求立刻返回,通知客户端拉取服务端的服务信息列表,若30s内,没有变化,则30s时该请求返回响应,客户端服务列表不变,再次发生该请求。

注:推荐该功能为true,这是nacos类似长连接推送服务变化的功能,不要关闭

spring.cloud.nacos.discovery.weight: 

nacos支持服务端基于权重的负载均衡,该值默认为1

注:建议该值保持默认即可,因为代码可能会部署到不同的服务器上,无法确保某台服务器的配置一定较好,如果有需要修改该值的需求,可以上控制台修改,这样可以保证对应IP服务器的权重值较高

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章