问题举例:现在有四个微服务,A,B,C,D。测试环境服务器自动构建了四个微服务,并且正常运行。现在开发人员a和开发人员b,都需要在本地分别调试开发A和B服务,而A,B必须依赖C,D服务才能启动,并且A和B服务需要通过nacos的服务名相互调用本地的A和B。
如果不做处理,开发人员a,b都会在nacos上注册A,B,加上服务器注册的。会有三个服务实例,本地A调用B时,会调用到服务器或者其他人的B,不适合做本地调试。
也就会有nacos的报错,导致本地项目启动不成功。
之前我们的解决方法是把当前nacos的配置文件克隆一份放到另一个服务器上的nacos,这样就可以做到隔离的效果。
但现在的话有了其他的解决方法,也就是使用命名空间。
命名空间属于绝对隔离,可以做到多个相同的项目不同的开发人员分别开发不同的功能使用同一个nacos的效果。
而使用命名空间也比较简单,在nacos上:
新建命名空间即可。
之后在项目的配置文件中加上:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: 42435513-884a-4a84-b878-d65f1b4a33ee #服务隔离
config:
namespace: 42435513-884a-4a84-b878-d65f1b4a33ee #配置隔离
即可。