在 RabbitMQ 中,如果消息没有被消费者确认(acknowledge),默认情况下它们不会被丢弃。RabbitMQ 的行为取决于你是如何配置队列的以及消费者的工作方式。
不自动确认: 如果消费者没有发送 ack,消息会留在队列中,RabbitMQ 会尝试再次发送消息给其他消费者,或者重新发送给同一个消费者(在它重新连接后)。
自动确认: 如果你启用了自动确认(auto-ack),那么即使消费者处理消息失败或者没有响应,消息也会被视为已处理,并从队列中删除。
消息重投: 如果消费者超时或崩溃,未确认的消息将被重新排入队列,以便其他消费者可以处理这些消息。
因此,消息在没有回应 ack 的情况下并不会被直接丢弃,具体行为依赖于你的配置和消费者实现。
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。