Java JMS队列的最大数量

Java JMS队列的最大数量,java,jakarta-ee,jms,activemq,mq,Java,Jakarta Ee,Jms,Activemq,Mq,我们有一个应用程序 1) 一个响应 2) 在客户端桌面上运行的Java SWING应用程序/小程序 我们有140多台这样的定制服务器(专用于每组swing客户端)。我们已经构建了一个管理应用程序来管理服务器启动、关闭和其他事情。对于管理应用程序和服务器之间的通信,我们正在构建一个JMS应用程序。 由于服务器负担沉重,我们没有将此JMS放在同一个框中,因此我们留下了一个选项,可以使用单独的JMS框。我需要一个单独的队列为每个服务器 我的问题是,我们能否在单个应用服务器上拥有140多个JMS队列。如

我们有一个应用程序 1) 一个响应 2) 在客户端桌面上运行的Java SWING应用程序/小程序

我们有140多台这样的定制服务器(专用于每组swing客户端)。我们已经构建了一个管理应用程序来管理服务器启动、关闭和其他事情。对于管理应用程序和服务器之间的通信,我们正在构建一个JMS应用程序。 由于服务器负担沉重,我们没有将此JMS放在同一个框中,因此我们留下了一个选项,可以使用单独的JMS框。我需要一个单独的队列为每个服务器

我的问题是,我们能否在单个应用服务器上拥有140多个JMS队列。如果是,硬件的理想配置应该是什么。如果没有,那你有什么建议

谢谢

不久前我发现了一篇有趣的文章:

[ActiveMQ]Broker在节点上打开700个队列后失败,原因是打开的文件太多——显然,每个队列有一个tempfile,每个JAR有一个打开的文件(其中有124个!),还有60个杂项文件句柄。客户端退出时,打开的文件数不会减少。一些谷歌搜索暗示ActiveMQ中有许多与泄漏的文件句柄相关的bug

我只回答“如果不是”部分

如果需要,您可以使用消息选择器来减少队列计数。一组服务器可以发送到一个队列,并由消息属性标识。您肯定已经定义了它——一个唯一标识服务器的IP、URL


不过,这是一个万不得已的解决方案,因为可以更好地监控单独的队列。

您可以使用更少的队列和(拉取特定于每个客户端的消息),或者查看如何配置ActiveMQ以处理大量队列

另外,如果您使用的是5.3+,那么它会优化为使用更少的文件描述符,等等