一、多环境场景
- 地理分布宽泛,多机房,分布式注册核心实现;
- 开发过程中,我的项目个别分为 local,dev,test,uat,prod 等环境;
- 开发人员在调试本地代码时,每个开发人员调用本地服务,互相独立,不影响各方;
- 开发人员调试微服务模块时,只须要启动须要调试的模块和网关即可,其余模块和接口主动调用预设环境中接口。
二、技术点
2.1 YAML 文件 (.yml) 中的键 (key) 通过变量援用来设置
-
援用整块 YAML 配置
替换键,则须要用到锚点。锚点用符号“&”定义,并用符号“*”进行援用。
锚点有两种应用形式,一是通过“<<:”将键值对一起引入:test-db: &test-db-config host: 127.0.0.1 port: 3306 user-db: <<: *test-db-config
通过 Spring 解析之后:
test-db: host: 127.0.0.1 port: 3306 user-db: host: 127.0.0.1 port: 3306
阐明:& 前面的锚点名字,可本人定义,不用与配置量的键雷同。
-
动静生成 Map 中的 Key,仅引入配置的值
原始配置
eureka: user: &euser ${user.name} client: service-url: devZone: http://***/eureka/ *euser: http://***/eureka/
通过 spring 解析之后
eureka: user: liudehua client: service-url: devZone: http://***/eureka/ liudehua: http://***/eureka/