RocketMQ的三种自带集群模式为:
(1)双MASTER : 优点是配置简单、快捷,但是一旦MASTER机器宕机或出现问题就无法提供服务;
(2)双MASTER双SLAVE同步双写: 比异步复制的性能差10%,但能保证数据不丢失;
(3)双MASTER双SLAVE 异步复制:性能最好,但是遇到突发情况会有少量数据丢失。
上图为双主双从集群原理图,其中Name Server是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。
Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的Broker Name,不同的Broker Id来定义,BrokerId为0表示Master,非0表示Slave。双主双从集群中有两个Master,每个Master对应一个Slave。
每个Broker与Name Server集群中的所有节点建立长连接,定时(每隔30s)注册Topic信息到所有Name Server。Name Server定时(每隔10s)扫描所有存活Broker的连接,如果Name Server超过2分钟没有收到心跳,则Name Server断开与Broker的链接。
Producer与Name Server集群中的其中一个节