RabbitMQ ConfirmListener 线程安全

RabbitMQ ConfirmListener thread safety

使用 RabbitMQ 的官方 java API,一旦我有了 Channel class 的实例,我就可以通过调用 theChannel.confirmSelect() 将其置于发布者确认模式。这只是将通道置于确认模式。为了实际接收确认,看来我必须添加一个 ConfirmListener 的实例。这是通过调用 theChannel.addConfirmListener(x) 完成的,其中 x 是我的 ConfirmListener 实例。

我的问题是,我的 ConfirmListener 实例是在哪个线程上调用的?我似乎无法从文档中弄清楚这一点。

RabbitMQ Java 客户端源已发言:在处理 rabbitmq 网络框架的同一线程中:

查看调用层次结构:

ConfirmListener.handleAck(long, boolean)  (com.rabbitmq.client)
  ChannelN.callConfirmListeners(Command, Ack)  (com.rabbitmq.client.impl)
    ChannelN.processAsync(Command)  (com.rabbitmq.client.impl)
       AMQChannel.handleCompleteInboundCommand(AMQCommand)  (com.rabbitmq.client.impl)
         AMQChannel.handleFrame(Frame)  (com.rabbitmq.client.impl)
           MainLoop in AMQConnection.run()(2 usages)  (com.rabbitmq.client.impl)