
[英]HornetQ messages still remaining in queue after consuming using core api
[英]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上的此示例说明了如何实现此目标:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.