spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848和spring.cloud.nacos.server-addr=127.0.0.1:8848两配置都能启动成功,有什么区别吗?
两者都能启动成功,区别在于作用范围不同:
对比
| 属性 | 作用范围 | 优先级 |
|---|---|---|
spring.cloud.nacos.server-addr |
全局通用------同时作用于 discovery 和 config 两个模块 | 低(会被更具体的覆盖) |
spring.cloud.nacos.discovery.server-addr |
仅服务发现------只影响注册中心 | 高 |
spring.cloud.nacos.config.server-addr |
仅配置中心------只影响配置拉取 | 高 |
生效规则
最终生效值 = 具体模块配置 > 全局配置 > 默认值
举例:
spring:
cloud:
nacos:
server-addr: 10.0.0.1:8848 # 全局:discovery 和 config 都用这个
discovery:
server-addr: 10.0.0.2:8848 # 覆盖 discovery,10.0.0.1 对 discovery 失效
# config 没单独配,所以 config 还是用全局的 10.0.0.1:8848
建议
如果你的 discovery 和 config 用的是同一个 Nacos 服务器,用全局配置更简洁:
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848
如果是不同地址(比如注册中心和配置中心分开部署),则需要分别指定:
spring:
cloud:
nacos:
discovery:
server-addr: 10.0.0.1:8848
config:
server-addr: 10.0.0.2:8848