架构问题:ActiveMQ和长队列

时间:2012-12-14 11:45:18

标签: queue jms activemq

我们使用AMQ从app1向app2发送数千条消息。 App2通过http连接将所有这些消息发送给客户端 但是现在我们遇到了一个问题,如果有些客户端慢慢消耗所有其他客户端等待的消息,因为AMQ会逐个发送消息,因此慢速客户端的消息会长时间阻塞其他消息。

真的很感激如何解决此类问题的任何想法

1 个答案:

答案 0 :(得分:0)

您需要详细说明App2如何通过HTTP发送消息。从本质上讲,您需要将该部分客户端设计为独立的,这样一旦您向至少一个客户端发送消息,您就需要准备好下一个消息。

也许APP2中有一些内部队列数据结构,每个客户都会将每条消息放入一个唯一的队列中。然后每个客户端可以按自己的速度吃掉每个队列。

根据您的要求和客户端总数,您甚至可能希望在ActiveMQ服务器上为每个客户端放置一个队列,并让Pub / Sub pattern将消息放入每个客户端队列。如果客户数量有限,可能会实现这一点。