Spring Integration Queue Channel是多线程的吗?

时间:2018-04-03 19:06:02

标签: spring multithreading spring-integration

我试图了解多个线程是否可以从Spring Integration Queue Channel同时/并行发送消息。 假设我有以下配置:

<int:channel id="fooChannel">
   <int:queue />
 </int:channel>

从文档中,我了解到通过使用队列通道生成器和消费者获得解耦,并且两者都发生在不同的线程中。

我的困惑之处在于 - 多线程是否可以处理存储在队列通道中的消息。我们经常使用JMS渠道做的事情。 (一个/多个生产者和多个消费者)

如果不可能,在队列通道中实现并发处理消息的推荐方法是什么

1 个答案:

答案 0 :(得分:0)

QueueChanneljava.util.Queue支持(默认情况下为LinkedBlockingQueue),专为多线程交互而设计。

所以,你绝对可以从不同的线程向这个频道发送消息。 另一方面,它也是如此:此通道与JMS队列完全相同:您可以拥有多个有竞争力的消费者(PollingConsumer个端点),其中只有一个将从队列中轮询和处理消息。