nacos 本地开发多人协同所注册服务名称一样时,导致调用服务冲突的解决方案
2026/5/4 8:41:32 网站建设 项目流程

1、环境

后端代码:spring cloud,以若依分布式微服务架构开源项目为基础:https://gitee.com/y_project/RuoYi-Cloud/tree/springboot3

服务中心:nacos

配置中心:nacos

2、问题

当我们使用nacos作为服务中心时,本地开发多人协同所注册服务名称一样时,会导致调用服务冲突。这时候我们会有几种解决方案:

  1. 每个开发人员都会在本地安装启动一个nacos,以免跟其他开发人员的服务产生冲突。(这样做比较麻烦,每次都要启动nacos,耦合性太高。)
  2. 每个开发人员都修改bootstrap.yml的应用名为自己特定的名称,以免跟其他开发人员的服务产生冲突。(这样是修改代码中的配置文件,一不小心把这个文件提交到代码仓库后,其他开发人员拉取代码后也会产生服务的冲突,有可能还会导致找不到什么问题。容易产生误操作。)

为了比较好地解决这个冲突问题,以下给出一个博主觉得比较好的解决方案...

3、解决方案

1.开发人员本地环境变量添加参数(参数名要全部开发者统一):DEV_USER_NAME,值保证跟其他开发人员不一致即可,可以是自己的姓名等。

macOS 操作系统自行搜索怎么配置环境变量。

windows 操作系统配置截图

2.nacos的application-dev.yml中配置环境变量的值
3.在其他所有的服务配置中使用环境变量配置应用名

4.修改fegin接口的服务名

nacos的application-test.yml中配置服务名,实际需要多少个就添加多少个。

nacos的application-dev.yml中配置服务名,实际需要多少个就添加多少个。

修改每个fegin服务所配置的服务名,这里只列举了其中两个

5.启动服务后在nacos服务中心里查看

服务器的服务是使用test环境启动的,所以没有使用环境变量。本地开发人员的服务是使用dev环境启动的,所以每个开发人员的服务器都会不一样。

通过以上的配置,每个开发人员只需在环境变量中配置一个参数,不需要修改任何代码上的配置,并且不需要额外本地启动nacos,就可以解决多人协同开发所产生的服务冲突。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询