RocketMQ消息高可靠详解

2023-04-04 09:28:10 浏览数 (1)

文章目录

  • 消息同步策略
  • 殊途同归
  • 同步基于offset而不是消息本身
  • 刷盘策略 RocketMQ broker服务端以组为单位提供服务的,拥有着一样的brokerName则认为是一个组。其中brokerId=0的就是master,大于0的则为slave。

消息同步策略

master和slave都可以提供读服务,但是只有master允许做写入操作,slave仅从master同步数据并不断上报自己的同步进度(slave自己的物理max offset)。

在Broker配置中,如果是有三个可选的brokerRole:ASYNC_MASTER、SYNC_MASTER、SLAVE。也就是说Master其实是分两种,决定其不同消息同步方式。

ASYNC_MASTER是异步复制的方式,生产者写入消息到Master后无需等待消息复制到slave即可返回,消息的复制由旁路线程进行异步复制。

SYNC_MASTER是同步复制的方式,表现出来的是类似同步双写的策略。即Master写入完消息之后,需要等待Slave的复制成功。注,这里只需要有一个Slave复制成功并成功应答即算成功,所以在这种模式下,如果有3个Slave,当生产者获得SEND_OK的应答时,代表消息已经达到Maser和一个Slave(注:这里并不代表已经持久化到磁盘,而只能证明肯定到了Pa

0 人点赞