rocketmq二主二从异步集群高可用测试
broke-a、broke-b-s在同一条服务器
broke-b、broke-a-s在同一台服务器
编写一个简单的同步消息生产、消费springboot程序,生产消息300条,进入rocketmq控制台可以查看300条消息大概是均分给了broke-a和broke-b,然后kill停掉broke-b,调用消费逻辑,发现只有一半的信息被消费。
重启broke-b后剩下一半再被消费。
即集群测试高可用性有问题,不知道问题是出在broke-b未向broke-b-s复制消息,还是消费程序不能自动切换从broke-b-s读取消息
这个问题可能是由于 RocketMQ 的异步复制导致的。当主节点 broke-b 停止工作时,从节点 broke-b-s 可能还未完成消息的复制,因此消费者只能读取到一半的消息。而在 broke-b 重启后,从节点 broke-b-s 完成了消息的复制,消费者才能读取到剩下一半的消息。
为了解决这个问题,可以通过以下方法:
调整 RocketMQ 集群的同步配置,以确保从节点完成消息复制后主节点才停止工作。
在消费者程序中,使用自动切换的功能,以确保消费者可以在主节点停止工作时从从节点读取消息。
可以改用同步复制,以保证消息完整的复制和消费。
希望以上内容对你有帮助
不知道你这个问题是否已经解决, 如果还没有解决的话: