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二主二从异步集群高可用测试过程中的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 北海 2023-02-07 18:07关注
这个问题可能是由于 RocketMQ 的异步复制导致的。当主节点 broke-b 停止工作时,从节点 broke-b-s 可能还未完成消息的复制,因此消费者只能读取到一半的消息。而在 broke-b 重启后,从节点 broke-b-s 完成了消息的复制,消费者才能读取到剩下一半的消息。
为了解决这个问题,可以通过以下方法:
调整 RocketMQ 集群的同步配置,以确保从节点完成消息复制后主节点才停止工作。
在消费者程序中,使用自动切换的功能,以确保消费者可以在主节点停止工作时从从节点读取消息。
可以改用同步复制,以保证消息完整的复制和消费。
希望以上内容对你有帮助
解决 无用评论 打赏 举报
悬赏问题
- ¥15 Opencv(C++)异常
- ¥15 VScode上配置C语言环境
- ¥15 汇编语言没有主程序吗?
- ¥15 这个函数为什么会爆内存
- ¥15 无法装系统,grub成了顽固拦路虎
- ¥15 springboot aop 应用启动异常
- ¥15 matlab有关债券凸性久期的代码
- ¥15 lvgl v8.2定时器提前到来
- ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
- ¥15 cam_lidar_calibration报错