Spring 如何使async=false和alwaysSessionAsync=false在vm传输上工作?
我需要实现一个消息传递场景,该场景使用来自多个目的地(主题)的消息。由于这些主题的吞吐量非常低,我使用springsSpring 如何使async=false和alwaysSessionAsync=false在vm传输上工作?,spring,activemq,Spring,Activemq,我需要实现一个消息传递场景,该场景使用来自多个目的地(主题)的消息。由于这些主题的吞吐量非常低,我使用springssimplemessagelistenercontainer让activemq将消息推送到适当的侦听器中 alwaysSessionAsync=false确保我与嵌入式代理的vm连接不会为每个会话创建一个线程(因为我每个侦听器有一个会话,数千个侦听器) 像这样,我的配置在内部activemq任务线程中启动simplemessagelistenercontainer,容器将其调度到线
simplemessagelistenercontainer
让activemq将消息推送到适当的侦听器中
alwaysSessionAsync=false确保我与嵌入式代理的vm连接不会为每个会话创建一个线程(因为我每个侦听器有一个会话,数千个侦听器)
像这样,我的配置在内部activemq任务线程中启动simplemessagelistenercontainer,容器将其调度到线程池中。不幸的是,activemq任务线程非常慢
因此,我想使用async=false(而不是jms.sendsync)来使用消息发送线程来处理消息,并将其推送到侦听器中,在该侦听器中,消息被调度到处理程序线程池中
不幸的是,这会导致死锁(根据yourkit)
如何使这两个属性工作?
或者:如何为异步发送加速嵌入式activemq?
async=false&;jms.copyMessageOnSend=false&;jms.useAncySend=false&;jms.alwaysSessionAsync=false&;jms.dispatchAsync=false
做我想做的事。但是,如果您在使用消息时发送消息,这将导致死锁