RabbitMQ ConfirmListener线程安全

时间:2015-04-09 13:35:12

标签: java thread-safety rabbitmq

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

我的问题是,我调用ConfirmListener的实例是什么线程?我似乎无法从文档中找到答案。

1 个答案:

答案 0 :(得分:1)

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)