我有一个聊天应用程序,我使用Spring Boot with SockJS通过STOMP支持和外部ActiveMQ Broker创建, 我的问题是,在大约4000个客户端连接和10000个ActiveMQ目标之后,ActiveMQ因与KahaDB相关的内存不足而崩溃。 我想切换到Apache Artemis,因为博客提到它比ActiveMQ表现更好,并且处理了更多的客户端连接,并且还实现了非阻塞。 我希望只是将ArtMis换成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>
非常感谢任何帮助。
提前致谢。
答案 0 :(得分:0)
使用artemis,您应该尝试使用最新版本(当我写这篇文章时为1.5.2)。
您可能需要使用Artemis 1.x相应地更改地址名称和队列名称。 (jms.queue和jms.topic)前缀。
随着即将发布的2.0版本,地址模型不再需要前缀,但在当前版本中,您可能会遇到必须在应用程序上定义前缀的问题。
随意开始讨论用户列表,这是贡献者最活跃的地方。