问题描述
有时候我们需要本地调试注册到 Nacos 上,但是会影响线上服务的 Feign 请求打到本地导致不通影响了线上业务。
原因分析
一般最传统的解决方案就是修改本地 bootstrap.yml 的 spring.cloud.nacos.discovery.namespace
spring:application:name: app-servercloud:nacos:discovery:server-addr: nacos:8848namespace: devconfig:server-addr: nacos:8848file-extension: yaml # 配置文件格式refresh-enabled: true # 是否可用动态刷新配置文件namespace: publicsharedConfigs: public.propertiesprofiles:active: local
但是改完有时候一不小心就提交到 Git 上了,等发现又要重搞一番,于是这里推荐一种无感知,相对比较优雅的方案。
解决方案
- 配置 Application 启动配置的环境变量写死 namespace 即可,这样 bootstrap.yml 也不需要修改,而已这里的环境变量优先级大于 bootstrap.yml,一举两得~