繁体   English   中英

HornetQ:顺序使用分布式队列

[英]HornetQ: consuming distributed queue sequentially

对于当前项目,我正在尝试使用JBoss 7.1和HornetQ(JMS)设置以下场景,我认为这是一个相当普遍的用例:有三个应用程序服务器。 许多MDB应该每个处理一个冗长的计算过程的分解片段,任务应该分布在三个服务器之间。 当一个片段完成并准备好相应的结果时,应将结果发送到分布式队列,从那里消费总结果。 为了避免在总结果汇编过程中出现争用情况,尽管必须在多个服务器之间分配“结果”队列,但必须顺序对其进行处理。 当另一个消息仍在进行中时,结果队列中的任何消息都不会被处理。 管理上的限制是,消费来自结果队列的消息的使用者(MDB或会话Bean)可以部署在所有集群节点上,即,部署在集群节点上的EAR是相同的。 在这种情况下,相同的使用者代码将部署在每个节点上。 仍然有一种同步访问队列的方法吗?

我不完全了解您的用例,但是听起来您需要消息分组。

http://docs.jboss.org/hornetq/2.4.0.beta1/docs/user-manual/html/message-grouping.html

如果您以更简单的方式发布问题,而无需深入了解您的测试用例,那么我可以理解,我也许可以为该答案添加更多信息。

您还谈到了漫长的过程。 听起来可能有客户端正在缓冲。 通过在serverLocator上设置consumer-window-size = 0来处理慢速消费者。

hornetq上的此示例说明了如何实现此目标:

http://docs.jboss.org/hornetq/2.4.0.beta1/docs/user-manual/html/examples.html#examples.no-consumer-buffering

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM