高可用性机制

 

  • RocketMQ分布式集群是通过Master和Slave的配合达到高可用的
  • Master和Slave的区别:Broker配置文件中,参数brokerId的值为0带包这个Broker是Master,大于0是Slave
  • Master角色的Broker支持读和写,Slave角色的Broker仅支持读

消费高可用

  • 有了主从结构之后,内部实现了自动切换,当Master不可用或繁忙的时候,会自动切换到Slave读,折旧达到了消费端的高可用

发送高可用

  • 创建Topic时,把Topic的多个Message Queue创建在多个Broker组上,当一个Broker的Master不可用后,其他组的Master任然可用,
  • 如果需要把Slave转换成Master,需要手动停止Slave角色的Broker,更改配置文件,用新的配置文件启动Broker 

消息主从复制

  • 如果一个Broker组有Master和Slave,消息需要从Master复制到Slave上,有同步和异步两个 复制方式

  • 同步复制:等Master和Slave都写入成功后才反馈给客户端成功状态

  • 异步复制:只要Master写入成功后就反馈给客户端成功的状态

  • 配置:通过Broker配置文件中的brokerRole参数进行设置

  • Master有ASYNC_MASTER,SYNC_MASTER两个配置

  • Slave只有SLAVE

总结

 

  • 合理设置刷盘方式和主从复制方式,通常把Master和Slave都配置为ASYNC_FLUSH的刷盘方式.主从之间配置成SYNC_MASTER的复制方式