跳到主要内容

十八、源码研究RocketMQ主从同步机制(HA)


关于主从同步最新理解:RocketMQ 主从同步若干问题答疑

HA主从同步的核心类图如图所示:
 

初始RocketMQ HA

HAService:主从同步核心实现类。

  • AtomicInteger connectionCount:Master维护的连接数。(Slave的个数)。
  • List< HAConnection> connectionList:具体连接信息。
  • AcceptSocketService acceptSocketService:服务端接收连接线程实现类。
  • DefaultMessageStore defaultMessageStore:Broker存储实现。
  • WaitNotifyObject waitNotifyObject:同步等待实现。
  • AtomicLong push2SlaveMaxOffset:该Master所有Slave中同步最大的偏移量。
  • GroupTransferService groupTransferService:判断主从同步复制是否完成。
  • HAClient haClient:HA客户端实现,Slave端网络的实现类。

HAConnection:HA Master-Slave 网络连接对象。

  • private final HAService haService:关联的AService实现类。
  • SocketChannel socketChannel:网络通道。
  • String clientAddr:客户端地址。
  • WriteSocketService writeSocketService:HAConnection网络写封装。
  • ReadSocketService readSocketService:HAConnection网络写封装。

RocketMQ HA机制大体可以分为如下三个部分。

  • Master启动并监听Slave的连接请求。