1

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

非常感谢如何解决此类问题的任何想法

4

1 回答 1

0

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

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

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

于 2012-12-14T13:48:51.530 回答