ribbon设置权重_spring cloud gateway+ribbon 组合指定版本权重分流(简易灰度发布实现)...

本文介绍了如何在Spring Cloud Gateway中结合Ribbon实现灰度发布,通过改造Weight Route Predicate Factory和自定义负载策略,依据版本权重将请求定向到特定服务实例。同时,文章探讨了在微服务间调用时如何保持版本信息的传递,以及处理Hystrix线程池隔离对版本处理的影响,并提出了在不使用Ribbon时的应对策略。
摘要由CSDN通过智能技术生成

0.参考

文章1 ribbon中使用HystrixRequestVariableDefault的一个注意事项

文章2 SpringCloud灰度发布实践(附源码) zuul实现的可以参考。

1.思路

改造gataway的### Weight Route Predicate Factory,在指定权重的同时指定每个对应权重的服务的版本号。主要需要改写的地方是要在分流之后,将版本号传给ribbon,ribbon在做负载均衡选择的时候,根据传入的版本号,与服务的eureka.matedata中的version匹配,从而达到灰度发布的目的。

gateway的配置类似如下,VersionWeight为重写的断言工厂。

- id: temp_old

uri: lb://TEMPLATE

predicates:

- Path=/temp/**

- VersionWeight=group1, 10, v1

filters:

- StripPrefix=1

- id: temp_new

uri: lb://TEMPLATE

predicates:

- Path=/temp/**

- VersionWeight=group1, 1, v2

filters:

- StripPrefix=1

2.调查改造点

debug后知道了整个请求顺序

客户端-> gateway filter -> LoadBalancerClientFilter -> (如果使用ribbon) RibbonLoadBalancerClient-> (某个Rule) XXXAvoidanceRu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值