0

生产者 <--> 消费者

在上述场景中,假设有“N”个生产者试图将大量消息放入我们的(消费者的)JMS 队列中。

我的问题是负载分配在 JMS 环境中如何工作,特别是队列。

我认为 JNDI 在这种情况下提供了足够的间接性,因此所有客户端都只是查找一些基于 JNDI 的队列和连接工厂。并且任何类型的 loadDistributor 都可以位于消费者和生产者之间以接收传入的消息。

它如何将这些传入消息分发到一个 JMS 提供者群(我认为我们需要一个群来处理传入流量)但是你如何维护多个队列的同步副本.. 或者你让任何消息进入任何队列,只需使用 MDB 处理它。但是您如何保证“消息将按照接收顺序进行处理”,因为它们都分布在一堆队列中......

对于这种“高负载”环境,推荐的方法是什么?

4

1 回答 1

1

队列本质上是“串行的”,其中的消息将分别传递给一个接收者。因此,如果您有例如 2 个 MBD 在侦听队列,它们将依次接收一条消息,然后处理下一条。

对于传入的消息,您只需将它们一个接一个地放入队列中。

我可能不完全理解您在研究什么,但它首先看起来,您需要一个 JMS 提供程序(“消息集线器”),它公开一个队列,多个 MDB(可以存在于不同主机上)将从中挑选消息.

于 2011-04-13T13:09:06.587 回答