需要大消息的 HornetQ 配置帮助

Posted

技术标签:

【中文标题】需要大消息的 HornetQ 配置帮助【英文标题】:Need help for HornetQ configuration with large messages 【发布时间】:2014-01-19 15:20:24 【问题描述】:

使用:2 个系统使用最大 10 MiB 的 XML 消息进行通信。集成使用 Mule ESB 3.3.1 和 HornetQ 2.3.0 Finale。

我们在使用 HornetQ 时遇到了问题(在同一台主机 Linux 上运行)。似乎 Mule 作为 JMS 客户端不断丢失/断开连接而无法重新连接,并且需要时不时地重新启动(通常每天几次,最多每 2 天一次)。在高峰期,队列接收到的消息(比消费者处理的多得多)。

问:如果有人成功使用 Mule 和 HornetQ 发送和接收大型 XML(文本)消息,如果您能分享您的“最佳”配置文件,我们将不胜感激。您需要哪些参数以及如何配置 HornetQ (JNDI) 以获得最可靠和稳定的消息传递环境?或者要避免哪些(不明显的)陷阱? HornetQ 是否有任何默认值,不应该在我们的这种用法中使用。

【问题讨论】:

应该使用 -1 作为总部文档所述的“无限次尝试”。为什么这个参数的 hornetq 默认设置为 0? 【参考方案1】:

您可能需要调整 JVM 设置,以及 ping 间隔。

本章带来了一些关于死连接检测以及如何配置这些参数的信息:

http://docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/connection-ttl.html

正如我在第一段中所说,通过设置适当的大小和并行垃圾收集来调整 JVM 和垃圾收集选项。您可以通过谷歌搜索找到这方面的好信息。

【讨论】:

您好,感谢您的帮助。我们需要转向那个方向。 “死连接”听起来很有希望 :) 我们注意到系统经常在晚上没有太多消息来来去去时被破坏。 也许您更改了配置,但您没有获得足够的 ping?如果您认为我回答了您的问题,请接受它,否则让我知道您仍然缺少什么,我会发布编辑它。

以上是关于需要大消息的 HornetQ 配置帮助的主要内容,如果未能解决你的问题,请参考以下文章

Python 客户端产生和使用 JMS 消息(HornetQ)

JMS-bridge 配置不共享两个 hornetQ 服务器上的负载

JMS 客户端需要哪些 HornetQ 库?

Mule ESB HornetQ JMS 消息未传递

HornetQ:从队列中删除所有消息,不适用于队列中的消费者

HornetQ Persistence 没有删除文件