各种jms提供程序实例之间的负载分配

时间:2011-04-13 12:13:42

标签: java-ee jms ejb java-ee-5

生产者< - >消费者

在上面的场景中,可以说“N”个生成器试图在我们的(消费者的)JMS队列中放入大量消息。

我的问题是负载分配如何在JMS环境中专门用于队列。

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

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

这种“高负荷”环境的推荐方法是什么?

1 个答案:

答案 0 :(得分:1)

队列本质上是“串行”的,其中的消息将被传递给一个接收器。因此,如果你有两个MBD监听队列,他们每个人都会依次接收一条消息,然后获取下一个。

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

我可能不完全明白你在调查什么,但它看起来是第一手的 您需要一个JMS提供程序(“消息传递集线器”)来公开一个队列,其中多个MDB(可以存在于不同的主机上)将从中选择消息。