Open
Description
作者你好,感谢你的开源作品。我在使用该开源产品时,遇到以下疑惑,麻烦解答。
服务实例:
A(元数据:env=canary)
B-1(元数据:env=canary)
B-2(元数据:env=prod)
C-1(元数据:env=canary)
C-2(元数据:env=prod)
调用链路:A ->B -> C
例如有一个基于spring schedule的定时服务A,通过FeignClient调用时,即使指定n-d-env=canary,也没有按路由策略调用B-1(元数据:env=canary),而是使用轮询策略调用B-1,B-2。但是当调用至B-1时,则只会调用C-1。当调用B-2时,只会调用C-2。
即可能调用链路为:
A -> B1 -> C1
A -> B2 -> C2
比较疑惑为什么A不会根据元数据 env=canary来调用B1呢?而是使用沦陷调用B服务
网上的方案可以在服务A中通过 DiscoveryClient,获取服务列表,然后根据A的元数据过滤,再使用RestTemplate/Okhttp发起对B的请求。
请问还有其他更优雅的方式实现吗?
Metadata
Metadata
Assignees
Labels
No labels