02 灰度架构设计、核心原理

2021/03/06 灰度 共 558 字,约 2 分钟
MiniPa

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

文档信息

Search

    Table of Contents