我们有50个@JMSListener类,它们从同一应用程序连接到50个不同的SQS队列。每个队列使用不同的侦听器容器是否更好?
我们将相同的ListenerContainer与SQSConnectionFactory一起用于发送和接收消息。如果我们为队列添加单独的ListenerContainer和多个JMSTemplate来将消息发送到消息数量很高的队列。
请您指教
如果您有50个@JMSListener
类在50个队列上侦听,则您已经有50个ListenerContainer。我不知道有什么方法可以让DefaultMessageListenerContainer
监听多个队列。
如果遇到性能问题,请查看org.messaginghub.pooled.jms.JmsPoolConnectionFactory
或org.apache.activemq.jms.pool.PooledConnectionFactory
。默认情况下,JMSTemplate
将为发送的每个消息创建一个新的JMS连接和会话。这非常昂贵。根据您的配置,DefaultMessageListenerContainer
也可以针对收到的每条消息执行此操作。