AutoSwitchHAService-source-code-analysis
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
RocketMQ5.0实现了主备自主切换其中AutoSwitchHAService作为其中一个重要的组件实现了当中的很多功能:
下面就来分析这些功能的实现。
1. AutoSwitchHAService工作流程
首先来看一下AutoSwitchHAService的工作流程,图如下:

主要分为几块:
- AutoSwitchHAService初始化
- AutoSwitchHAService启动,包括:AutoSwitchAcceptSocketService、GroupTransferService、HAConnectionStateNotificationService服务。
- Broker启动等待注册到DLedger Controller的返回结果,根据结果来判断Broker change role。
- Broker角色为Master的时候主要是将Master的CommitLog数据传输到Slave, Slave主要的功能就是通过HAClient处理Master传输的数据。
Broker Master和Slave的分工合作从而实现了Broker的CommitLog数据传输到Slave的功能。从而达到高可用和主备切换的目的。