RabbitMQ 消费者调度与重试(prefetch、DLX、死信与延迟队列)概述合理的消费者并发与预取(prefetch)可提升吞吐,但需配合死信与延迟重试避免重复与雪崩。关键实践与参数`basic.qos` 设置 `prefetch`,控制每消费者未确认消息数(如 50)。死信交换机(DLX):失败消息路由到 DLX 与死信队列;记录原因与重试计数。延迟队列:通过 TTL + DLX 或插件实现延迟重试,指数退避与上限控制。并发:消费者数量与进程线程模型;避免过度并发导致资源争夺。配置示例(伪配置)queue: orders arguments: x-dead-letter-exchange: dlx exchange: dlx (direct) queue: orders.retry arguments: x-message-ttl: 60000 x-dead-letter-exchange: orders-ex 验证方法压测下观察吞吐与失败率;确认延迟重试命中与成功率。指标:未确认消息、死信堆积与处理时延;告警阈值设置。故障演练:消费者崩溃与恢复;避免重复消费与乱序。注意事项幂等处理与去重;避免重试造成多次入账。控制最大重试次数与最终入库失败处理(人工兜底)。与队列优先级与隔离策略协同,保护关键业务。

发表评论 取消回复