前言
记录一个自己前段时间遇到的问题,希望能够帮到出现同样问题的读者
这里创建了一个新的命名空间,想要对在该命名空间上的服务与其他命名空间进行隔离。
在网上翻阅其他作者的资料只解决了标题问题的其中一个。
正确的做法:
需要在配置文件中做修改
spring:
application:
name: xxxx
cloud:
nacos:
server-addr: xxx:8848
config:
namespace: a7d702ec-994e-4578-9155-8ccff5cf0674
shared-configs:
# 加载配置
username: xxx
password: xxx
discovery:
namespace: a7d702ec-994e-4578-9155-8ccff5cf0674
ip: xxx
可以看到,无论在 config 中还是 discovery 中,都需要配置 namespace
- config 中:配置加载对应命名空间的配置
- discovery 中:配置服务暴露在那个命名空间
ps:在配置的值是 命名空间id,而不是 命名空间名称。可以进行编辑
结论
可见 Nacos 将配置和暴露的位置进行分开配置,这样能进一步提高配置加载的灵活性。在一个命名空间的服务能够加载不同命名空间的配置,提高配置复用性。
用户可以根据需求配置这两项参数,不一定要在同一命名空间下