RabbitMQ:忽略预取()是否会导致数据并发?

RabbitMQ:忽略预取()是否会导致数据并发?,rabbitmq,message-queue,messagebroker,Rabbitmq,Message Queue,Messagebroker,情景: 我有一个生产者和消费者,只有一个队列传输消息。使用者将根据已使用DB的消息更新DB上的值。不应向数据库并行发送任何操作。因此,我们不应该做任何导致数据库上数据并发的事情。我使用预回迁(1)一次接收一条消息。删除prefetch()是否会导致多个操作并行发送到数据库 消费者是否在单线程处理器中处理消息而不使用prefetch() < P >如果我们不考虑单线程批处理操作的情况,我们首先需要知道什么导致并行?多线程消耗 预回迁值定义通道或用户上允许的未确认传递的最大数量 因此,预回迁只会影响

情景:

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

消费者是否在单线程处理器中处理消息而不使用
prefetch()
< P >如果我们不考虑单线程批处理操作的情况,我们首先需要知道什么导致并行?多线程消耗

预回迁值定义通道或用户上允许的未确认传递的最大数量

因此,预回迁只会影响消费者内存中存储的未确认消息的数量。这并不涉及消费

什么配置将导致并行 如果我们只有一个通道,那么它只有一个分派线程,因此所有传入的消息都是串行处理的。实现消费并行性的一个明显方法是增加收听频道和消费者的数量


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

如果没有关于如何编写消费者的更多详细信息,这个问题就无法回答:rabbitmq只是在请求时发送消息,它无法控制接下来发生的事情。例如,如果它是一个PHP脚本,答案很简单,因为PHP没有本机线程;在其他语言中,这将取决于您使用的库以及如何使用它。谢谢您的明确回答。你能提供消息来源吗?@emadmaghani谢谢你的评论。关于什么的资料来源?关于你提到的概念的文档。@EmadMamaghani,