自定义Ribbon的IRule实现服务之间的灰度发布

Posted 打杂工程师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义Ribbon的IRule实现服务之间的灰度发布相关的知识,希望对你有一定的参考价值。

自定义Ribbon的IRule实现服务之间的灰度发布

一、实现思路

  1. 考虑如何在服务之间实现灰度,切入点在哪里?
    服务与服务之间的调用时通过HTTP协议,如果要实现灰度,只能在调用的时候来实现。在Springcloud体系中,负责服务间调用的组件就是Ribbon。
    Ribbon是负责客户端的负载均衡,默认的规则是区域轮训。
    因此,如果要实现服务间的灰度发布,则需要重新定义Ribbon的调度规则即可。
    Ribbon的规则,则是通过IRule实现(ribbon的loadbalance)

二、实现方式

2.1 实现思路解析

要想实现服务间的灰度,则需要考虑以下几个问题:

  1. 服务调用者的身份怎么确定?换言之,负载均衡规则中,如何获得当前用户的信息?
    因为只有知道了当前用户的信息才能确定用户应该命中哪个规则。
    由于服务调用者和Ribbon之间是属于同一个线程,所

以上是关于自定义Ribbon的IRule实现服务之间的灰度发布的主要内容,如果未能解决你的问题,请参考以下文章

微服务Ribbon负载均衡

Srping cloud Ribbon 自定义负载均衡

Ribbon,负载均衡简介,Ribbon架构,IRULE的7种默认算法

一起学源码-微服务Ribbon 源码四:进一步探究Ribbon的IRule和IPing

Ribbon篇四Ribbon核心组件IRule

Ribbon之IRule