RocketMQ系列:FAQ之dledger4.7.1集群问题

前言

公司的项目里面使用了rocketmq,开发建议使用rocketmq的最新版本4.7.1,并采用dledger模式部署。但是我在部署测试dledger模式的时候遇到了一个坑,在这里分享一下,避免大家重复踩坑。

环境

如图是我搭建的rocketmq的dledger集群,集群为两分片:broker-a和broker-b,每个dledger集群中有三个节点(1个leader和2个follower) 

问题 

在测试过程中,我需要模拟broker机器断网来测试rocketmq的高可用:在同时生产和消费的过程中,使用iptables命令让broker-b集群中的master机器断网(即无法和外部通信),然后过一段再让broker-b的master机器联网。

这时候突然发现broker-b中有3个slave,正常应该如broker-a所示(一个leader+两个follower)

排查原因

查看broker-b集群上的日志store.log,发现内部在一直同步offset,应该是在断网期间出现了本地文件不一致的问题。

而集群内部日志来看,一直在进行选举主节点,看来是在这里发生了某种死循环,无法选主。

 再查看dledger的版本:vim rocketmq/store/pom.xml。这里用的是0.1,一般0.1版本都是初次发行版本,所以问题肯定比较多,经过咨询确实是dledger0.1的某些未知bug。

 

建议:如果非要使用dledger模式,建议使用0.1以上版本,或者等rocketmq的新的发行版出来再使用,否存在高可用的一些风险。

博主:测试生财

座右铭:专注测试与自动化,致力提高研发效能;通过测试精进完成原始积累,通过读书理财奔向财务自由。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374


猜你喜欢

转载自blog.51cto.com/14900374/2539707
今日推荐