Skip to content

Zebra路由设计

junior_xin edited this page Dec 6, 2018 · 5 revisions

路由策略

路由首先会选择本区域的读库,本区域内:

  1. 按流量权重路由 会根据优先级选择对应中心内所有读库按权重路由,未开启则整个区域内按权重路由
  2. 按机房路由,路由顺序如下:
    a. 选择同机房的读库,按流量权重路由
    b. 选择同中心其他读库,按流量权重路由
    c. 按优先级选择其他机房内读库,按流量权重路由
    d.选择非中心的读库,按流量权重路由

基本架构

  • GroupDataSource在初始化时会根据是否为remote从zk或本地读取配置初始化RegionManager及Router
  • RegionManager用于查询Region、center和idc
  • RegionAwareRouter内包含多个CenterAwareRouter,每个CenterAwareRouter对应一个region
  • CenterAwareRouter包含一个DataSourceRouter和多个WeightRouter,DataSourceRouter用于路由同中心内的库,WeightRouterList根据优先级查找其他中心的库