微调
This commit is contained in:
@@ -1,24 +0,0 @@
|
||||
这个模块的核心作用是“环境标签(tag)透传 + 按标签路由”。
|
||||
|
||||
它具体做了什么
|
||||
|
||||
1. 启动早期把 rdms.env.tag 映射到 Nacos 实例 metadata (spring.cloud.nacos.discovery.metadata.tag)。
|
||||
文件: EnvEnvironmentPostProcessor.java
|
||||
2. Web 请求进来时读取请求头 tag,放到线程上下文。
|
||||
文件: EnvWebFilter.java
|
||||
3. Feign 调用时把上下文里的 tag 继续写到下游请求头。
|
||||
文件: EnvLoadBalancerClient.java
|
||||
|
||||
rdms.env.tag 在这个项目里是可选的,不配也能跑。
|
||||
代码里明确是“有就生效、没有就跳过”:
|
||||
- 读取 rdms.env.tag,为空就直接返回,不改路由标签
|
||||
EnvEnvironmentPostProcessor.java
|
||||
- application-local.yaml 里配了 rdms.env.tag: ${HOSTNAME},而 dev 没配
|
||||
application-local.yaml
|
||||
它的目的就是你说的这种场景之一:
|
||||
多人共用一个 Nacos namespace/集群时,用 tag 做流量隔离(比如“我发起的请求尽量打到我这套实例”)。
|
||||
再具体点,作用有三层:
|
||||
1. 给本实例打 Nacos metadata tag。
|
||||
2. 接口收到 tag 请求头后放到上下文。
|
||||
3. Feign/LB 优先选同 tag 实例。
|
||||
所以 dev 不配 tag,通常代表该环境不需要“按人/按版本隔离流量”,走默认路由即可。
|
||||
Reference in New Issue
Block a user