依赖版本
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>
配置中心配置
配置类:NacosConfigProperties
前缀:spring.cloud.nacos.config
参数 | 描述 |
---|---|
server-addr | nacos服务地址,优先级比endpoint高。 |
username | 用户名 |
password | 密码 |
encode | 配置内容编码方式 |
group | nacos 配置组,组是配置数据元信息。 默认值:DEFAULT_GROUP |
prefix | nacos 配置 dataId 前缀。 |
file-extension | nacos config dataId 的后缀,也是配置内容的文件扩展名。 |
timeout | 配置超时时间。 默认值:3000 |
max-retry | 长轮询的最大重试次数。 |
config-long-poll-timeout | 长轮询的超时时间,单位为毫秒 |
config-retry-time | 长轮询任务重试时间,单位为毫秒 |
enable-remote-sync-config | 启用远程同步配置,监听器首次添加时拉取远端配置,默认值:false |
endpoint | nacos服务的域名 |
namespace | 命名空间ID。 Nacos通过不同的命名空间来区分不同的环境,进行数据隔离 |
access-key | access key |
secret-key | secret key |
context-path | 服务器的上下文路径。 |
cluster-name | 集群名称 |
name | dataId 名称 |
shared-configs | 一组共享配置,例如: spring.cloud.nacos.config.shared-configs[0]=xxx . |
extension-configs | 一组扩展配置。例如: spring.cloud.nacos.config.extension-configs[0]=xxx . |
refresh-enabled | 刷新配置的主开关,默认:true(打开) |
注册中心配置
配置类:NacosDiscoveryProperties
前缀:spring.cloud.nacos.discovery
参数 | 描述 |
---|---|
server-addr | nacos服务地址,优先级比endpoint高。 注:多个IP可以通过“,”号隔离,例如192.168.80.1:8848,192.168.80.1:8848 填写域名时前缀不要加上http:// |
username | 用户名 |
password | 密码 |
endpoint | nacos服务的域名 |
namespace | 命名空间ID。 Nacos通过不同的命名空间来区分不同的环境,进行数据隔离,服务消费时只能消费到对应命名空间下的服务。 |
watch-delay | 默认为30s。 默认为true,客户端在启动时会创建一个线程池,该线程定期去查询服务端的信息列表,该请求不会立刻返回,默认等待30s,若在30s内,服务端信息列表发生变化,则该请求立刻返回,通知客户端拉取服务端的服务信息列表,若30s内,没有变化,则30s时该请求返回响应,客户端服务列表不变,再次发生该请求。 注:推荐该值为30s即可,无需修改 |
log-name | nacos客户端会在启动时打印一部分发送注册请求信息和异常日志,可以通过日志查看注册的nacos集群地址、服务名、nameSpace、IP、元数据等内容,文件名默认为naming.log。 注:推荐将该日志的位置设置为和其他日志在一个文件夹下 |
service | 项目向注册中心注册服务时的服务名。 默认为spring.application.name 变量。 注:该服务名必须使用小写,因为nacos服务名区分大小写,如果服务名不完全匹配,那么无法调用服务 |
weight | nacos支持服务端基于权重的负载均衡,该值默认为1。 注:建议该值保持默认即可,因为代码可能会部署到不同的服务器上,无法确保某台服务器的配置一定较好,如果有需要修改该值的需求,可以上控制台修改,这样可以保证对应IP服务器的权重值较高 |
cluster-name | 集群名称,默认值:DEFAULT |
group | 分组名称,默认值:DEFAULT_GROUP |
naming-load-cache-at-start | 客户端在启动时是否读取本地配置项(一个文件)来获取服务列表。 默认为false。 注:推荐该值为false,若改成true。则客户端会在本地的一个文件中保存服务信息,当下次宕机启动时,会优先读取本地的配置对外提供服务。 |
metadata | 给服务添加一些标签,例如属于什么业务线,该元数据会持久化存储在服务端,但是客户端消费时不会获取到此值,默认为空。 注:推荐为空,我们可以通过已经注册的服务名来找到具体的业务线,无需添加metadata |
register-enabled | 该项目是否向注册中心注册服务,默认为true。 注:如果服务从注册中心只消费服务,没有对外提供服务,那么该值可设置为false,可减少客户端线程池的创建,无需向服务端发送心跳请求,提高性能。 |
ip | 服务实例要注册的ip地址,不用设置 |
network-interface | 想要注册哪个网络接口的ip |
port | 向nacos注册服务时,服务对应的端口号。 注:无需修改,默认为应用对外提供服务的端口号,server.port |
secure | 是否是 https 服务,默认:false |
access-key | access key |
secret-key | secret key |
heart-beat-interval | nacos客户端向服务端发送心跳的时间间隔,默认5s。 注:客户端向服务端每隔5s向服务端发送心跳请求,进行服务续租,告诉服务端该实例IP健康。若在3次心跳的间隔时间(默认15s)内服务端没有接受到该实例的心跳请求,则认为该实例不健康,该实例将无法被消费。如果再次经历3次心跳的间隔时间,服务端接受到该实例的请求,那么会立刻将其设置外健康,并可以被消费,若未接受到,则删除该实例的注册信息。推荐配置为5s,如果有的业务线希望服务下线或者出故障时希望尽快被发现,可以适当减少该值。 |
heart-beat-timeout | 服务端没有接受到客户端心跳请求就将其设为不健康的时间间隔,默认为15s。 注:推荐值该值为15s即可,如果有的业务线希望服务下线或者出故障时希望尽快被发现,可以适当减少该值。 |
ip-delete-timeout | ip删除超时。 时间单位:毫秒。 |
instance-enabled | 是否启用实例以接受请求。 默认值是true。 |
ephemeral | 实例是否是短暂的。默认值为true |
其他参数配置
参数 | 描述 |
---|---|
com.alibaba.nacos.naming.log.level | Naming客户端的日志级别,改属性通过客户端启动时通过命令行加参数指定。 注:默认为info |
com.alibaba.nacos.naming.cache.dir | 客户端缓存目录,默认值:{user.home}/nacos/naming |
com.alibaba.nacos.client.naming.tls.enable | 是否打开HTTPS,默认值:false |
namingLoadCacheAtStart | 启动时是否优先读取本地缓存,默认值:false |
namingCacheRegistryDir | 指定缓存子目录,位置为 …/nacos/{SUB_DIR}/naming |
namingClientBeatThreadCount | 客户端心跳的线程池大小 |
namingPollingThreadCount | 客户端定时轮询数据更新的线程池大小 |
参考文档:
Nacos 系统参数介绍