我需要实现消息来自目的地(主题)的消息的消息传递方案。由于这些主题的吞吐量非常低,我使用spring simplemessagelistenercontainer
让activemq将消息推送到适当的侦听器。
alwaysSessionAsync = false确保我与嵌入式代理的vm连接不会为每个会话创建一个线程(因为我每个侦听器和数千个侦听器都有一个会话)。
像这样我的配置启动内部activemq任务线程中的simplemessagelistenercontainer,容器将其调度到线程池中。不幸的是,activemq任务线程非常慢。
所以我想使用async = false(NOT jms.sendAsync)来使用消息发送线程来处理消息并将其推送到监听器中,并将其调度到处理程序线程池中。
不幸的是,这导致了死锁(根据你的套件)。
我如何使这两个属性有效? 或者:如何加速嵌入的activemq以进行异步发送?
答案 0 :(得分:0)
async=false&jms.copyMessageOnSend=false&jms.useAsyncSend=false&jms.alwaysSessionAsync=false&jms.dispatchAsync=false
做我想做的事。但如果您在消费时发送消息,则会造成死锁。