Java 您可以远程取消rabbitmq使用者吗?
我正在阅读关于rabbitmq中的Java 您可以远程取消rabbitmq使用者吗?,java,rabbitmq,Java,Rabbitmq,我正在阅读关于rabbitmq中的Channel.basicCancel操作的文档。文件说,一种可能的取消情况是消费者在其监听的同一频道上发送取消信号 这是唯一的可能性吗?您能否取消在不同通道/连接/进程上运行的远程使用者 我正在尝试从另一个进程发送取消请求。当我这样做时,它以一个异常java.io.IOException:Unknown consumerTag结束,就像这样的操作仅限于取消本地消费者(在自己的频道或连接上) 更新: 我注意到这个“未知的consumerTag”异常是com.ra
Channel.basicCancel
操作的文档。文件说,一种可能的取消情况是消费者在其监听的同一频道上发送取消信号
这是唯一的可能性吗?您能否取消在不同通道/连接/进程上运行的远程使用者
我正在尝试从另一个进程发送取消请求。当我这样做时,它以一个异常java.io.IOException:Unknown consumerTag
结束,就像这样的操作仅限于取消本地消费者(在自己的频道或连接上)
更新:
我注意到这个“未知的consumerTag”异常是com.rabbitmq.client.impl.ChannelN.basicCancel(字符串)内部初始验证的结果:
但是仍然可能有一些rpc调用实现了这一点…RabbitMQ团队监视并有时只回答有关StackOverflow的问题
文档是正确的,您必须从消费者自己的频道/连接中取消消费者 其他选项包括让您的消费者意识到“取消消息”,这将导致他们停止自己,或者使用API来关闭与之相关的所有频道
Consumer originalConsumer = (Consumer)this._consumers.get(consumerTag);
if (originalConsumer == null) {
throw new IOException("Unknown consumerTag");
}
...