-
Notifications
You must be signed in to change notification settings - Fork 12k
Closed
Description
rocketmq 选择了2主2从搭建的集群(a,a-s,b,b-s)选择的是同步复制,异步刷盘。做如下测试 ,发送消息5000条,同时生产端设置了重试次数,以及失败后转移另一台broker参数。 在生产端发送到一半的时候,kill 掉 a 主节点。 后面剩余消息会发送到b broker 上。 最终结果是 producter 生产端 5000 条都发送成功了。 但是消费端消费条数却会少于5000条,少1-3条数据。 如果此时,再去开启a broker 节点。 那么 消费端就会消费到之前缺少的几条数据。 我有点疑惑, 我的想法是,a 主节点挂掉后,消费端应该会去切换消费a-s 备份broker上的数据以及b 主节点的数据。但是在集群模式下事实并没有。在a 挂掉后,只消费了 b broker 上的消息。 为什么呢? 我又做了测试,如果只是搭建一主一从,同样采用同步复制,异步刷盘,kill 掉主节点,此时会消费备份节点的数据了。集群模式下的这种机制又是怎么样的?有点疑惑
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels