rabbitmq - rabbitmq中预取计数与无ack有什么区别

标签 rabbitmq spring-amqp spring-rabbit

我需要知道rabbitmq中预取计数与无ack之间有什么区别?

还有 以下陈述有什么区别:-

如果我设置预取计数为 10,是否会创建 10 个消费者线程? 或者——

如果我注册 10 个消费者,它会创建 10 个线程吗?

以上哪种方式效率更高

最佳答案

专门针对 spring-amqp 回答这个问题。

prefetchCount=10 表示代理允许每个消费者最多 10 条未确认的消息;它不影响线程数。

使用concurrentConsumers创建多个消费者 - 每个消费者都有一个线程。

自动确认意味着代理不需要确认(因此您可能会丢失消息)。如果监听器无法跟上,Spring AMQP 还会阻止传递(以预取计数)。

关于rabbitmq - rabbitmq中预取计数与无ack有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699727/

相关文章:

rabbitmq - 通过RabbitMQ发送文件

rabbitmq - 监控rabbitmq以确保一切顺利运行的最佳方法是什么?

hibernate - Spring amqp 消费者 - 第一次尝试时出现 "No Session found for current thread"错误

rabbitmq - 如何在@rabbitlistener中使用@queuebinding?

java - Rabbitmq 队列为空,尽管队列中有消息

java - 在 Spring AMQP 中根据消费者数量使用队列

java - RabbitMQ QueueingConsumer 可能的内存泄漏

java - 在 Spring Integration 中处理异常时遇到问题

java - 带有 AMQP 和 RabbitMQ 的 Spring,带有可选 x-dead-letter-exchange 的队列

java - 为什么 DefaultJackson2JavaTypeMapper.toJavaType() 不支持抽象类和接口(interface)作为推断类型?