Trung BìnhRabbitMQ iconRabbitMQ

Làm thế nào để xử lý message bị lỗi và retry trong RabbitMQ?

RabbitMQ không tự retry message bị lỗi — đó là nhiệm vụ của consumer.

Các pattern phổ biến:

  1. Nack + requeue: consumer bắt exception, gửi nack với requeue=true, message quay lại queue (cần cẩn thận để tránh loop vô hạn).
  2. Dead-letter + retry: message fail → dead-letter queue → retry consumer đợi N giây rồi republish lên queue gốc.
  3. Circuit breaker: phát hiện liên tục fail, tạm dừng consume, kiểm tra sau

Để cap số lần retry, consumer đọc header x-death — RabbitMQ populate header này mỗi khi message đi qua DLX.

Kết hợp manual ack, DLX, và monitoring tạo nên retry handling robust.

Xem toàn bộ RabbitMQ cùng filter theo level & chủ đề con.

Mở danh sách RabbitMQ