决战圣地玛丽乔亚Day52----RocketMQ的主从结构,扩容,高可用

发布时间 2023-04-17 22:03:03作者: EmiXXXt

主从结构:

方案1:多master无slave模式  

缺点:

  • 若broker宕机,则broker上未被消费的消息在broker恢复前无法消费

方案2:多“master-slave”异步复制模式

给master分配slave从节点,生产者发消息给master后,异步将master的数据增量复制到slave 

优点:master出现异常后,slave能继续提供消费服务。

缺点:broker宕机后,slave永远无法成为master,即producer无法再向该mater写入消息

 

方案3:多“master-slave”同步复制模式(同步双写)

producer写数据时,同步向master和slave同步写入,都写入成功才向producer返回“写入成功”的响应。

优点:数据的可靠性比上面强

缺点:broker宕机后,slave永远无法成为master,即producer无法再向该mater写入消息

方案4:DLedger(多副本)模式(唯一的推荐使用方案)

前提:在RocketMQ4.5版本以后提供了DLedger集群架构,要求一个broker集群中至少要提供有三个broker集群分片(即多对“1master多slave”),一旦master节点宕机,DLedger会自动从剩下的多个slave中选举出一个新的master继续对外提供服务。master与slave之间的数据同步可以支持异步模式和同步模式。

 

优点:master节点异常时,能自动选举出新master提供服务

缺点:耗费资源较多

 

 

重复消费问题:

扩容问题: