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