MSHA的核心功能是切流。本文将介绍在异地中如何创建切流任务并查看切流详情。
创建切流工单
- 登录AHAS控制台。
- 在控制台左侧导航栏中选择多活容灾。
- 在左侧导航栏选择,并在顶部选择目标命名空间。
- 在异地双活切流页面,单击切流。
- 在切流详情页面您可以修改工单名称,然后选择以下任意一种方式完成第①步的规则调整。
- 方式一:范围切流
- 选择切流方式为范围。
- 使用以下任意方式更改切流规则:
- 更改中心单元的流量百分比。
说明 更改一个单元的流量百分比后,另一单元的流量百分比也随即改变。
- 拖动中心单元或普通单元区段选择器的滑块来改变流量百分比。
- 单击关闭按比例调节,然后编辑中心单元的流量区间。
说明 中心单元的流量区间与普通单元的流量区间需连续且不重复。例如中心单元流量区间为[0,3925],则普通单元为[3926,9999]。
- 方式二:精准切流
- 选择切流方式为精准。
- 单击单元操作列的修改,在单元面板中输入访问中心单元的流量名单,单击+ 添加,可添加多个要切流的精准名单。完成后单击确认。
- 在第①步规则调整区域单击生成预览,查看切流规则。
- 单击第②步生效时间右侧的规则文本,即可对比查看切流规则前后变更详情。确认后单击执行预检查。
- 在第③步切流检查区域单击详情,在弹出的接入层实例检查面板查看切流检查详情,待所有检查项均通过后,单击确认。
说明 若有检查项检查不通过,可在该检查项右侧单击重试或跳过。跳过功能一般用于紧急切流场景,请谨慎使用。
然后在弹出的切流确认对话框中单击确定。
查看切流详情
创建切流任务后,MSHA开始进行切流工作。完成切流需要进行以下几个过程,您可以在切流任务页面查看这些过程的详情。
说明 若未启用某多活组件,则切流详情中不会有对应的步骤和展示内容。
- 单击前置任务,可以查看该命名空间下配置的前置自定义动作。配置前置自定义动作的具体操作,请参见切流回调配置。
- 单击前镜像开启。
MSHA将自动执行所有DTS的前镜像匹配开启操作,即DTS做数据同步时,会校验目的库数据跟源库数据的前镜像是否一致,不一致则会忽略。该功能用于防止切流期间,数据同步延迟未追平的情况下跳过了数据同步延迟(禁写、禁止更新)策略的情况下,目标单元的写入不会被源单元覆盖。
说明 若镜像开启失败,可单击批量重试进行重试。若仍开启失败,可单击批量跳过跳过该步骤。跳过后存在切流期间数据被覆盖的风险,请慎用。
- 单击更新规则。
MSHA使用ACM向业务系统推送切流态路由规则,业务系统中依赖的MSHA-SDK,将根据切流态路由规则进行路由。
说明 若推送规则失败,则单击重试进行重试,MSHA将在2小时内定时自动重试,如果超时仍未成功则切流工单进入异常状态并回滚重推基线规则。
- 单击数据禁写。
此过程中,业务系统中依赖的MSHA-SDK会开启数据库禁写控制,以此进行单元保护,避免更新规则推送到业务系统的时间不一致、机器时钟不一致,导致各机器规则生效时间不一致出现的数据脏写问题。
- 各层切流。同时进行接入层和数据层切流。
- 接入层切流。MSHA将执行各单元流量比例推送和各单元化路由规则推送。
说明 若推送规则失败,则单击重试,MSHA将在2小时内定时自动重试,如果超时仍未成功则切流工单进入异常状态。
- 数据层切流。MSHA自动获取数据层的实例库DTS同步延迟情况。业务系统中依赖的MSHA-SDK也会根据同步延时策略,进行相关的控制(禁写、禁更新、忽略)。当所有实例库DTS同步延迟为0s时,系统自动进入下一步骤后置任务。
- 单击后置任务,可以查看该命名空间下配置的后置自定义动作。配置后置自定义动作的具体操作,请参见切流回调配置。
MSHA将进行前镜像关闭,即关闭DTS数据库同步的校验功能。并使用ACM向业务系统推送切流终态路由规则。业务系统中依赖的MSHA-SDK,将根据终态路由规则进行路由,并结束同步延时策略的相关控制(禁写、禁更新、忽略)。
执行结果:规则推送成功后,将展示流量推送比例饼图。操作至此,证明切流成功。