1.microservice-common-gateway下configuration包下GrayLoadBalancerClientConfiguration类中的grayLoadBalancer()方法,有个@Bean注解实例化了灰度路由的处理类
2.当有web请求进入时,在filter包下GrayReactiveLoadBalancerClientFilter进行拦截,进入choose方法
3.进入VersionGrayLoadBalancer类中的choose方法
一、获取满足serviceId的所有实例
二、注册中心实例时,抛出异常
三、获取请求头中的VERSON对应的值,若无则随机返回可以用的实例
四、查找VERSON和请求体对应上的实例返回
五、若不存在VERSON与请求体对应的实例,则随机返回可以用的实例