之前遇到问题:
RibbonFilterContextHolder.clearCurrentContext();
RibbonFilterContextHolder.getCurrentContext().add(“uid”, “uuid”);
这个的使用目前还有点问题,在zuul中会报
zuul.exception.ZuulException: Forwarding error
解决:
是与负载均衡有关:
有用途为 灰度发布
主要是用来 进行zuul中转发的集群服务的筛选,
在集群服务中进行设置
eureka:
instance:
hostname: lamanage
metadata-map:
userId: 1
prefer-ip-address: true
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
不同的服务用不同的key,value。
然后在zuul转发的过程中设置
RibbonFilterContextHolder.getCurrentContext().add("userId", "1")
则会转发跳往至设置为userId为1的那个集群。
结论:
对于RibbonFilterContextHolder的使用是用来选集群中的某一个节点的,
后续 1、还需要对ribbon的源码进行学习,对这个的原理进行学习。2、考虑还是否有其它的方法进行节点选择