队列上的多个消费者

 常见问题解答 > JMS > 队列上的多个消费者

如果你想从队列中并发消费消息,则必须为每个消费者使用不同的会话。

这是因为每个线程都需要一个会话。JMS 协议规定,一个线程一次只能使用一个会话。如果你使用消费者,这意味着如果使用相同的会话,一次只能有一个消费者接收消息。因此,如果你想并发消费消息,你需要为每个消费者使用不同的会话。

但是,你如何建立连接是你的选择。在正常的基于网络的模式下,在会话之间共享相同的连接将实质上通过单个套接字多路复用流量(从而以更多同步为代价减少资源使用)。因此,有时需要使用更多连接,因为通常并发使用不同的套接字往往比使用单个套接字更快。)。

顺便说一句,在 J2EE 1.4 中的 JCA 规范中,资源适配器通常会为每个会话创建一个连接,因此这两个之间存在一对一映射。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛标识和 Apache ActiveMQ 项目标识是 Apache 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 授权。