【发布时间】:2013-12-12 03:17:32
【问题描述】:
对于当前项目,我正在尝试使用 JBoss 7.1 和 HornetQ (JMS) 设置以下场景,我认为这是一个相当常见的用例:有三个应用程序服务器。多个 MDB 应该各自处理一个冗长计算过程的分解片段,任务应该分布在三个服务器之间。当一个片段完成并且相应的结果准备好时,应该将结果发送到分布式队列,从那里消耗它并组装总结果。为了避免总结果组装过程中的竞争条件,“结果”队列必须按顺序处理,尽管它可能分布在多个服务器中。当另一条消息仍在进行中时,结果队列中的任何消息都不能被处理。 一个管理约束是消费来自结果队列的消息的消费者(MDB 或会话 bean)可以部署在所有集群节点上,即部署在集群节点上的 EAR 是相同的。在这种情况下,相同的消费者代码将部署在每个节点上。还有办法同步访问队列吗?
【问题讨论】:
-
我不确定你想在这里实现什么。你不想在第一个消费的时候消费任何东西?您要么使用消息分组,要么保留一个消费者。消息传递本质上是异步的。您似乎想打破这个概念?
标签: java jboss jms message-queue hornetq