跳转至

RabbitMQ

消息代理,适合任务队列、业务事件、路由分发和需要灵活 AMQP 模型的场景。

核心概念

概念 说明
Producer 发布消息的应用。
Exchange 根据类型和路由规则将消息路由到 Queue。
Queue 存放等待消费者处理的消息。
Binding Exchange 与 Queue 之间的绑定规则。
Consumer 接收并处理消息的应用。
Virtual Host 逻辑隔离的命名空间。

常见 Exchange 类型:direct 按 routing key 精确匹配;topic 按模式匹配;fanout 广播;headers 按消息头匹配。

可靠投递

  • Producer 使用 publisher confirms,确认 Broker 已接管消息。
  • Consumer 优先使用手动 ACK;业务真正处理成功后再确认。
  • 失败消息按业务设计重试、延迟队列和死信队列,避免无限快速重试。
  • 用 prefetch 限制未确认消息数量,防止慢消费者被压垮。

集群与运维

rabbitmq-diagnostics status
rabbitmqctl cluster_status
rabbitmqctl list_queues name messages consumers
rabbitmqctl list_connections
  • 集群同步元数据,但队列消息的副本策略取决于队列类型。
  • 关键业务优先评估 Quorum Queue;它以多数派复制实现更可预测的故障行为。
  • 生产集群建议使用奇数节点数;两节点集群无法在网络分区时形成多数派。
  • 监控队列堆积、未确认消息、消费者容量、磁盘/内存告警和连接数。

官方参考:可靠性消费者与确认集群