Tars框架IDC分组和Set分组说明文档

简介

        tars的分组可实现跨地区、跨机房、环境隔离提供服务可用性。

IDC分组介绍

为了加快服务间的访问速度,建设跨地区、跨机房调用带来的网络资源消耗,减少网络故障带来的影响,框架提供了跨地区、跨机房,就近接入的功能。

说明

  • 按照IP地址的前三段定位出属于哪个具体的机房。
  • 被调服务属于哪个组的信息可以修改,如果不指定就按照IP段的规则来匹配。自动分组
  • 主调的出身已经决定了主调的物理组和逻辑组。
  • 被调的出身可修改,将影响主调调用的活动列表。
  • 是否启用IDC分组,完全取决于被调服务IP!!!Tars框架IDC分组和Set分组说明文档_第1张图片

核心流程

  • 1.首先从数据库中检索出该服务所有的“活动列表”和“非活动列表”
  • 2.根据客户端IP得出调用者所处的物理组,假设为GROUP_A
  • 3.遍历“活动列表”,将属于GROUP_A的所有IP检索出来。如果找到了,将这些IP返回给客户端,并退出;否则进行第4步。
  • 4.按照t_group_priority定义的优先级,遍历所有逻辑组。如果在某个逻辑组中,发现了活动IP,则将这些IP返回给客户端,并退出;否则查找下一个逻辑组,如果在所有的逻辑组仍然没有找到活动IP,则进行第5步。
  • 5.遍历“活动列表”,将属于组“-1”,也就是将没有启动分组的IP检索出来。如果找到了,将这些IP反馈给用户。如果没有找到,则进行第6步。
  • 6.将从数据库中检索出的“活动列表”直接返回。

Set分组介绍

为了方便对业务服务部署管理进行标准化和容量化,框架提供了Set部署能力,set之间没有调用关系,互不干扰,故障隔离,提高运维效率和服务可用性

说明

  • Set名: 定义一个大的Set名称,可以以业务名称来定义。
  • Set地区:可以按照地区来对划分如n,b(南北),也可以以城市来分如sh(上海),sz(深圳)等。
  • Set组名:实际可以重复的组单元的名称,一般是 0,1,2,3,4,5,Tars框架IDC分组和Set分组说明文档_第2张图片

核心流程

  • 1.主被调双方都要启用SET分组,并且SET全名要一致。
  • 2.SET内有被调的(不管死活),只能调用本SET内的。如果没有被调(死的也算有),则只能调用本地区的公共区域的,还没有的话,只能按照IDC分组原则调用未启用SET的。
  • 3.通配组服务可调用SET内和通配组的任何服务
  • 4.如果不满足1,则按照IDC分组逻辑调用。

调用关系

A服务 调用结果 B服务
set名 Set地区 Set组名 set名 Set地区 Set组名
trust SZ 1 trust SZ 1
× trust SZ 2
× trust SZ *
× trust SH 1
× trust SH 1
trust SZ 2 × trust SZ 1
trust SZ 2
× trust SZ *
× trust SH 1
× trust SH 1
trust SZ * trust SZ 1
trust SZ 2
trust SZ *
× trust SH 1
× trust SH 1

IDC分组与Set分组的调用

A服务 B服务 规则
启用Set 启用Set 寻找在同一set的ip地址,如果同一个Set没有可用地址,则返回空
启用Set 没启用Set/启用IDC 按IDC分组的寻址返回地址
启用Set 没启用Set/没启用IDC 返回所有可用的地址
没启用Set 启用Set/启用IDC 按IDC分组的寻址返回地址
没启用Set 启用Set/没启用IDC 返回所有可用的地址
没启用Set 没启用Set/启用IDC 按IDC分组的寻址返回地址
没启用Set 没启用Set/没启用IDC 返回所有可用的地址

你可能感兴趣的:(tars框架,运维)