Spring boot stomp和ApacheArtemis上的Spring Boot SockJS

Spring boot stomp和ApacheArtemis上的Spring Boot SockJS,spring-boot,stomp,spring-websocket,sockjs,activemq-artemis,Spring Boot,Stomp,Spring Websocket,Sockjs,Activemq Artemis,我有一个聊天应用程序,我使用Spring Boot和SockJS-over-STOMP创建,由外部ActiveMQ代理支持, 我的问题是,在大约4000个客户端连接和10000个ActiveMQ目的地之后,ActiveMQ崩溃,与KahaDB相关的内存不足。 我想切换到ApacheArtemis,因为博客中提到它比ActiveMQ性能更好,处理更多的客户端连接,并且在中实现了非阻塞。 我的希望是用Artemis交换ActiveMQ,但是,我看到客户端连接并订阅主题和队列,但它们没有通过Artem

我有一个聊天应用程序,我使用Spring Boot和SockJS-over-STOMP创建,由外部ActiveMQ代理支持, 我的问题是,在大约4000个客户端连接和10000个ActiveMQ目的地之后,ActiveMQ崩溃,与KahaDB相关的内存不足。 我想切换到ApacheArtemis,因为博客中提到它比ActiveMQ性能更好,处理更多的客户端连接,并且在中实现了非阻塞。 我的希望是用Artemis交换ActiveMQ,但是,我看到客户端连接并订阅主题和队列,但它们没有通过Artemis接收消息

想法可能是什么问题? 以下是我在Artemis broker.xml配置文件中的设置:

  <address-settings>
     <!--default for catch all-->
     <address-setting match="#">
        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
        <redelivery-delay>0</redelivery-delay>
        <!-- with -1 only the global-max-size is in use for limiting -->
        <max-size-bytes>-1</max-size-bytes>
        <message-counter-history-day-limit>10</message-counter-history-day-limit>
        <address-full-policy>PAGE</address-full-policy>

        <auto-create-jms-queues>true</auto-create-jms-queues>
        <auto-delete-jms-queues>true</auto-delete-jms-queues>

     </address-setting>
  </address-settings>

jms.queue.DLQ
jms.queue.ExpiryQueue
0
-1
10
页
真的
真的
任何帮助都将不胜感激


提前感谢。

对于artemis,您应该尝试可用的最新版本(在我撰写本文时为1.5.2)

您可能需要使用Artemis1.x相应地更改地址名和队列名。(jms.queue和jms.topic)前缀

在即将发布的2.0版本中,地址模型不再需要前缀,但在当前版本中,您可能会遇到必须在应用程序上定义前缀的问题


欢迎在用户列表上展开讨论,这是贡献者最活跃的地方。

感谢Celebert的快速回复。非常感谢。我使用的是最新版本1.5.2。我将尝试使用jms.queue和jms.topic谓词。你知道2.0什么时候发布吗?谢谢这和任何软件项目一样。。我们希望在1个月内完成(从我写这篇文章的那天起,为未来的观众准备)。。但你知道怎么回事。。。我想是2017年2月或比赛。。根据剩下要做的事。。但这是我个人的预测。非常感谢更新,我会关注2.0版本。我没有说一定要集群。把它们分开。不需要集群。只需使用多个实例。除非你需要主题。你为什么不打开一个新的线程?我可以投票还是接受这个问题很高兴得到分数:)