Java RabbitMQ Client中的ConfirmListener是否必须同步?

奥列克桑德(Oleksandr)

我想知道当我们收到ACK时会发生什么。我们是在单个线程中还是在多个线程中接收到ACK?
是单个线程还是多个线程使用handleAck和handleNack方法?如果它们由单个线程使用,则可以。但是,如果它们被多个线程使用,则我们必须以线程安全的方式构造代码。

阿敏J

您不需要编写ConfirmListener线程安全代码,但不是因为不会从多个线程中调用ackandnack方法,而是因为您不应该Channel在线程之间共享a

文档特别指出了这一点:

虽然通道上的某些操作可以安全地并发调用,但有些操作则不能并发调用,这会导致错误的帧交错在电线上。线程之间共享通道也会干扰*发布者确认。

当您发布到代理时,只是不共享频道。通道是轻量级的,创建起来并不昂贵。这样,您也不必担心确认。

如果您确实共享频道,则上述报价会干扰您的确认。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

RabbitMQ ConfirmListener线程安全

来自分类Dev

在 Java RabbitMQ 中动态创建 RabbitListner

来自分类Dev

AMQP Java客户端是否缓存RabbitMQ的队列内容?

来自分类Dev

RabbitMQ的Android和Java的

来自分类Dev

如何使用Java在RabbitMQ中实现Headers Exchange?

来自分类Dev

Java客户端中的RabbitMQ通道和线程

来自分类Dev

从Java代码获取RabbitMQ队列中的消息计数

来自分类Dev

从Java代码获取RabbitMQ队列中的消息计数

来自分类Dev

在RabbitMQ Java Client中每次发布时打开和关闭频道

来自分类Dev

rabbitmq 如何同步消息?

来自分类Dev

在Java中,“同步”是否等效于“同步(this)”?

来自分类Dev

处理RabbitMQ中的死信

来自分类Dev

RabbitMQ中的Ack或Nack

来自分类Dev

RabbitMQ中消息丢失

来自分类Dev

在RabbitMQ中过期的时间

来自分类Dev

RabbitMQ中更新的队列

来自分类Dev

在RabbitMQ中过期的时间

来自分类Dev

RabbitMQ中的并发

来自分类Dev

Rabbitmq 中的消息标签

来自分类Dev

RabbitMQ中的任务排队

来自分类Dev

RabbitMQ。Java客户端。是否可以在不同的接收线程上确认消息?

来自分类Dev

是否可以使用Java应用程序将JSON对象传递给RabbitMQ队列?

来自分类Dev

如何使用RabbitMQ Java客户端库处理从故障连接中恢复的问题?

来自分类Dev

在 Java 中反序列化由 C# 生成的 RabbitMQ 消息

来自分类Dev

RabbitMQ for Java:如何发送多个值?

来自分类Dev

Rabbitmq无法与Java一起使用

来自分类Dev

使用Java停止队列监听RabbitMQ

来自分类Dev

使用Java停止队列监听RabbitMQ

来自分类Dev

使用java配置的RabbitMQ出站网关