1

我有一个Processor正在监听 jms 主题的 java 类,它正在努力跟上消息到达的速度,所以我们决定并发:

监听主题的单个类的工作是将消息分发到工作线程池,实际上是负载均衡器。它还必须防止 2 个工作人员为同一客户处理消息。

我预计互联网上会有很多关于此的信息,但一切似乎都表明使用 EJB,应用服务器管理池并进行平衡。我确信这一定是一个非常普遍的问题,但似乎找不到任何库或设计模式来提供帮助。我是否从中获得了更多收益,是否应该深入研究并编写自己的代码?

4

2 回答 2

1

为什么不直接使用队列而不是主题,并让同一个应用程序的多个实例处理来自该队列的消息?

于 2010-06-29T11:36:43.787 回答
0

这是一个很容易通过听众池解决的问题。这就是应用服务器将为您做的事情。

我会得到一个好的应用服务器并使用它的 MDB 来快速解决这个问题。调整游泳池的大小以跟上,你会没事的。

如果您坚持编写自己的代码,请获得一个好的开源池实现并使用它。

如果它必须是非 EJB,请考虑 Spring。它具有消息驱动的 POJO,可能正是您所需要的。

于 2010-06-29T12:39:28.850 回答