0

我有一个聊天应用程序,使用 Spring Boot 和 SockJS over STOMP 创建,由外部 ActiveMQ 代理支持,我的问题是在大约 4000 个客户端连接和 10000 个 ActiveMQ 目标之后,ActiveMQ 崩溃,与 KahaDB 相关的内存不足。我想切换到 Apache Artemis,因为博客提到它比 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>

任何帮助将非常感激。

提前致谢。

4

1 回答 1

0

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

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

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

随意在用户列表上开始讨论,这是贡献者最活跃的地方。

于 2017-02-07T21:11:00.293 回答