本文共 1281 字,大约阅读时间需要 4 分钟。
RocketMQ分布式集群是通过Master和Slave的配合达到高可用性
Master和Slave的区别:在Broker的配置文件中,参数brokerId的值为0表明这个Brocker是Master,大于0表明这个Brocker是Slave,同时BrokerRole参数也会说明这个Brocker是Master还是Slave
Master角色的Brocker支持读和写,Slave角色的Brocker仅支持读,也即是Producer只能和Master角色的Broker连接写入消息;Consumer可以连接Master角色的Brocker,也可以连接Slave觉得的Brocker来读取消息
消息消费高可用
在Consumer的配置文件中,并不需要设置是从Master读还是从Slave读,当Master不可用或者繁忙的时候,Consumer会被自动切换从Slave读。有了自动切换Consumer这种机制,当一个Master角色机出现故障后,Consumer仍然可以从Slave读取消息,不影响Consumer程序,这就达到了消费端的高可用性
消息发送高可用
在创建Topic的时候,把Topic的多个Messafe Queue创建在多个Brocker组上(相同Brocker名称,不同brocker的机器组成一个Brocker组),这样当一个Brocker组的Master不可用后,其他的Master仍然可用,Procucer仍然可以发送消息,RocketMq目前还不支持把Slave自动转成Master,如果集器资源不足,需要把Slave转成Master,则要手动停止Slave角色的Brocker,更改配置文件,用新的配置文件启动Brocker
消息的主从复制
如果一个Brocker组有Master和Slave,消息需要从Master复制到Slave上,有同步和异步两种方式
转载地址:http://thxzb.baihongyu.com/