消息处理如何善始善终而且避免单点故障?

发布于 2021-11-30 05:24:45 字数 410 浏览 725 评论 1

在做一个基于amq的代理服务程序,主要功能是收听消息中间件的的消息,然后进行处理。

为了避免单点故障,代理服务程序被设计成分布式的,每个消息只能被处理一次,简单做法就是最初源头的消息是队列而不是广播,显然广播不满足只处理一次的需求。

但是基于队列还存在一个问题,因为消息是有批次和顺序的,我希望某个代理服务程序收到某个批次的第一个消息后,则该批次的消息都由它执行(谁先接手,谁就要负责到底,因为多个代理程序都处理一个批次的消息,会产生执行顺序的问题),不能再由其它代理服务程序来处理(貌似又产生单点问题),基于我目前对AMQ的理解,这个似乎不容易做到。

不知道AMQ能不能实现上述的诉求?

或者是否ZOOKEEPER能满足这样的要求?

不知道说明白了没有?多少年没发帖了。


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情栀口红 2021-12-02 07:31:02

保证消息的顺序消费可以通过指定队列的消费方式为阻塞消费。

避免broker的单点的问题,可以通过桥接方式进行队列转发。

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文