多活服务指令编排

多活服务指令编排

大体的请求流转路径

DNS–>防火墙–>负载均衡VIP–>应用服务器–>数据库/缓存服务器

DNS–>负载均衡VIP–>应用服务器–>数据库/缓存服务器

一、防火墙

防火墙作为外部流量的入口,当作全链路切换时,即使是共享型系统,也需要配置防火墙的部分流量切换步骤。

先暂停:暂停的机房暂停流量的引入

再切换:将用户请求切换到新的机房

指令类型和功能说明

类别作用
暂停暂停流量引入
切换将用户请求切换到新机房

二、IDNS

域名绑定负载均衡vip, 负载均衡vip设置路由到具体服务器ip的策略

  1. 针对内网中两个系统间通过HTTP 域名并且没有经过防火墙访问的场景。

  2. 注意调用方的DNS缓存时间不能超过30s,否则切换后不能及时生效。

指令类型和功能说明

类别作用
前置检查检查待切换配置的域名、IP与系统间的对应关系是否正确。
切换将DNS上的域名指向目标逻辑数据中心中系统的IP。

三、多活任务调度管理

多活任务调度管理主要负责定时任务请求的分发和调度,例如定期归档等,因为数据可能分散再不同的机房因此需要将调度请求分发到对应的机房去处理。

多活任务调度管理的任务分为主机房任务\多机房任务\Cell型任务三大类:

  1. 主机房任务: 任务只在主机房执行,当主机房切换时才需要切换. 对应指令为暂停和切换.

  2. 多机房任务: 每个机房都要执行的任务. 对应指令类型为暂停和恢复.

  3. Cell型任务: 任务和用户相关,随Cell主库的变更而切换.中台的单元化任务也是属于Cell型任务。对应指令类型为暂停和恢复。

    注释:cell指的是单元分区,我们通过取模的方式把所有的用户分为256份,即256个cell,每个cell设置对应的路由的机房,那么用户请求过来就会路由到这个cell对应的机房去处理。

指令类型和功能说明

类别作用
暂停暂停任务执行
切换将任务切换到新机房执行。
恢复恢复本机房的多机房任务。

四、RPC框架/消息队列

不同系统之间都是通过远程过程调用的方式来相互通信的,为了保证系统之间高的通信效率和数据一致性,需要将同一个用户请求路由到相同的机房去处理,例如购物车是A机房处理的用户请求,如果库存是在B机房处理用户请求的话,如果A\B两个机房数据没有同步完成,B机房故障了,那么就会存在数据不一致情况发生,如果购物车和库存都是在A机房处理的话就可以避免这种不一致问题。

RPC框架和消息队列的配置相似,放在一起说明。都是远程服务调用,都需要调整对应的路由策略。

指令类型和功能说明

类别作用
暂停暂停服务请求或消费.
切换切换到新机房请求或消费

几种不同的路由策略:

1、路由到主机房:竞争型的服务,所有的会员都需要操作同一个资源的场景

2、路由到同机房:共享型的服务

3、根据会员编码路由:独占型的服务,即根据cell路由,cell在哪个机房就路由到哪个机房

五、KAFKA

  1. Kafka不区分celllist,以机房为单位切换。

  2. Kafka消费系统在做正式切换前需要执行前置检查步骤,检查对应的topic配置是否满足多活的要求,已经在卡夫卡平台上做过汇聚或主备配置。所以任务中先配置前置检查步骤.

  3. Kafka目前支持主机房消费和多机房消费两种消费方式的切换:

  1. 主机房消费指消费系统只在主机房消费,备机房不消费,消费的数据通过数据层同步到备机房。 使用指令:暂停和切换。
  2. 多机房消费指消费系统在每个机房都消费并落入本机房数据库。使用指令:暂停和恢复。调研的结果,多活一期系统目前没有使用这种模式。

指令类型和功能说明

类别作用
前置检查检查对应的topic配置是否满足多活的要求
暂停暂停消费topic
切换切换到新机房消费topic

六、数据库管理/缓存管理

  1. 数据库管理和缓存管理的配置相似,放在一起说明。

  2. DB和Cache,系统使用的方式不同,分为:独占型(8N+1),竞争共享型和混合型。

指令类型和功能说明

类别作用
前置检查检查系统在两个逻辑数据中心的DB或Cache是否部署,复制关系是否建立。
前置同步检查检查系统的待切库,在逻辑数据中心间的同步延迟是否在“切换Delay阈值”范围内。默认20s:即同步延迟在20s内才允许开始切换任务。
同步检查检查系统的待切库,在逻辑数据中心间的同步延迟是否在“偏移量”范围内,默认0:即没有偏移再进行正式切换。
暂停暂停流量写入.
切换将主库切换到新机房

master和slave之间复制的方式是同步复制的方式而非半同步复制和异步复制的方式

七、多活切换管理平台

  1. 切换管理平台提供sleep指令,表示暂停一段时间后再执行下一个切换步骤。用于前一个步骤中的组件排干任务和数据。

指令类型和功能说明

类别作用
Sleep暂停执行下发

八、任务中的步骤依赖顺序

全链路切换的场景:有防火墙的场景不需要配DNS切换,无防火墙的场景需要配DNS切换

单系统切换的场景:应用到哪些组件就切换哪些组件

序号前置依赖步骤序号切换步骤名称
1数据库前置检查
2redis缓存前置检查
3卡夫卡前置检查
4IDNS前置检查
51,2,3,4数据库前置同步检查
61,2,3,4redis缓存前置同步检查
76,7防火墙暂停
86,7任务调度暂停
97,8切换管理平台 sleep
109卡夫卡暂停
119RPC框架暂停
129消息队列暂停
1310,11,12切换管理平台sleep
1413数据库暂停
1513redis缓存暂停
1614,15多活管理平台 sleep
1716数据库同步检查
1816redis缓存同步检查
1917,18数据库切换
2017,18redis缓存切换
2119,20消息队列切换
2219,20RPC切换
2319,20卡夫卡切换/恢复
2419,20IDNS切换
2521,22,23,24任务调度切换/恢复
2621,22,23,24防火墙切换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值