微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RabbitMQ:忽略prefetch是否会导致数据并发? prefetch是否导致平行什么配置将导致并行

如何解决RabbitMQ:忽略prefetch是否会导致数据并发? prefetch是否导致平行什么配置将导致并行

场景:

我只有一个生产者和消费者,只有一个队列来传输消息。使用者将根据使用它的消息更新DB上的值。不应将任何操作并行发送到数据库。因此,我们不应该做任何导致数据库上数据并发的事情。我使用prefetch(1)一次接收一封邮件删除prefetch()是否会使多个操作并行发送到数据库

消费者是否在没有prefetch()的单线程处理器中处理消息?

解决方法

prefetch是否导致平行

如果不考虑单线程批处理操作的情况,那么我们首先需要知道导致并行化的原因是什么?多线程消耗。

prefetch值定义了渠道或消费者允许的未确认交付的最大数量。

因此,预取只会影响在用户内存中存储了多少未确认的消息。这不涉及消费。

什么配置将导致并行

如果我们只有一个通道,则它只有一个调度线程,因此所有传入消息都将按顺序处理。实现消费并行性的一个明显方法是增加收听渠道和消费者的数量。

尽管Rabbitmq的客户端版本很多,但它们都是根据AMPQ协议编写的,因此并没有太大的区别。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。