我有一个试图订阅许多不同主题的应用程序。
服务器端通过这些主题发布大量消息,一旦应用程序开始订阅,它就会收到很多消息,导致应用程序甚至无法到达订阅功能的末尾。
似乎OnMessage Listener被淹没了很多(监听器是试图为所有主题订阅的类)。
所以基本上有一种方法可以在我订阅所有主题之前停止接收消息吗?或者我错过了什么?
尝试订阅所有主题的线程永远不会再次获得处理器。 (如果服务器关闭,订阅很好,因为它没有收到任何东西,所以它不会失去处理能力..)
提前谢谢。
保罗。
答案 0 :(得分:1)
您可以尝试降低使用者的预取限制,这样可以防止代理在创建消息时尝试分发这么多消息,这有助于减少您看到的泛滥问题。
以下是一些可能有用的文档。 http://activemq.apache.org/what-is-the-prefetch-limit-for.html
蒂姆 - www.fusesource.com