我试图了解多个线程是否可以从Spring Integration Queue Channel同时/并行地发送消息 . 假设我有以下配置:
<int:channel id="fooChannel">
<int:queue />
</int:channel>
从文档中,我了解到通过使用队列通道生成器和消费者获得解耦,并且两者都发生在不同的线程中 .
我的困惑之处在于 - 多线程是否可以处理存储在队列通道中的消息 . 我们经常使用JMS渠道做的事情 . (一个/多个 生产环境 者和多个消费者)
如果不可能,那么在队列通道中实现并发处理消息的推荐方法是什么
1 回答
QueueChannel
由java.util.Queue
(默认情况下为LinkedBlockingQueue
)支持,它专为多线程交互而设计 .所以,你绝对可以从不同的线程向这个 Channels 发送消息 . 另一方面,它也是如此:此通道与JMS队列完全相同:您可以拥有多个竞争消费者(
PollingConsumer
endpoints ),其中只有一个将轮询并处理来自队列的消息 .