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的新的发行版出来再使用,否存在高可用的一些风险。
博主:测试生财(一个不为996而996的测开码农)
座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。
内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。
csdn:https://blog.csdn.net/ccgshigao
博客园:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374
微信公众号:测试生财(定期分享独家内容和资源)