自定义Ribbon的IRule实现服务之间的灰度发布
Posted 打杂工程师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义Ribbon的IRule实现服务之间的灰度发布相关的知识,希望对你有一定的参考价值。
自定义Ribbon的IRule实现服务之间的灰度发布
一、实现思路
- 考虑如何在服务之间实现灰度,切入点在哪里?
服务与服务之间的调用时通过HTTP协议,如果要实现灰度,只能在调用的时候来实现。在Springcloud体系中,负责服务间调用的组件就是Ribbon。
Ribbon是负责客户端的负载均衡,默认的规则是区域轮训。
因此,如果要实现服务间的灰度发布,则需要重新定义Ribbon的调度规则即可。
Ribbon的规则,则是通过IRule实现(ribbon的loadbalance)
二、实现方式
2.1 实现思路解析
要想实现服务间的灰度,则需要考虑以下几个问题:
- 服务调用者的身份怎么确定?换言之,负载均衡规则中,如何获得当前用户的信息?
因为只有知道了当前用户的信息才能确定用户应该命中哪个规则。
由于服务调用者和Ribbon之间是属于同一个线程,所
以上是关于自定义Ribbon的IRule实现服务之间的灰度发布的主要内容,如果未能解决你的问题,请参考以下文章
Ribbon,负载均衡简介,Ribbon架构,IRULE的7种默认算法