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

panhan 发布于 2016/10/27 16:56
阅读 209
收藏 0

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

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

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

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

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

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


加载中
0
will--wang
will--wang

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

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

 

返回顶部
顶部