Gray 思维脑图
核心原理
扩展Ribbon路由功能实现灰度链路调度,网关Zuul、Rpc Feign核心链路调度均由 Ribbon实现。
灰度策略信息Strategy,由单独的Mysql存储,Admin进行管理配置。
灰度实例的灰度信息Decision,注册到服务注册中心如Nacos的实例元数据Metadata中。
路由调度时,切入Ribbion原先进行路由的策略,依据请求头headers信息,服务实例元数据中灰度信息,构建新的路由策略。 例如:按userId路由不同的实例、按流量比率路由不同实例,按版本version不同路由不同的实例
核心角色
- 注册中心:存储服务实例的灰度信息
- 灰度Admin管理平台:管理灰度配置,触发灰度信息注册与刷新
- 灰度Client客户端:缓存、刷新灰度信息,切入Ribbon执行灰度路由策略
模型设计
- 灰度服务 Server信息:
- serviceId 灰度服务ID
- Name 服务名称
- instanceNum 服务实例数量
- grayInstanceNum 服务灰度实例数量
- Plan 灰度计划
- InstanceInfo 灰度实例信息:serviceId、instanceId、instanceStatus、grayStatus
- Strategy 灰度决策:instanceId,policyId
- Policy 灰度策略:一组 strategy
文档信息
- 本文作者:jiushun.cheng
- 本文链接:https://minipa.github.io/2021/03/06/02-gray-arch/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)