跳到主要内容

RabbitMQ

可靠发送

  1. 重发或更换通讯方式
  2. 消息表重试
  3. 下游服务确认

可靠消费

  1. 消费重试
  2. 重试队列(消费失败之后,确认可以重试,生产消息到重试队列)

消息堆积

  • 消费速率和生产速率相同
  • 不重要消息设置过期时间
  • Virtual Host 设置MaxLentgh或者Overflow策略

幂等性

  • 唯一标识(防重表,主键)
  • 乐观锁(版本号来控制)

降级处理

  • 意外场景考虑手工补偿
  • 不重要场景直接丢弃或者降级为其它方案

Quorum队列 和 Classic队列

  • Quorum队列是基于Raft协议实现的分布式队列,提供更高的可用性和数据一致性,适用于关键任务和高可靠性需求的场景。
  • Classic队列是RabbitMQ的传统队列类型,适用于一般的消息传输需求,性能较高但在节点故障时可能会丢失消息。
  • Quorum队列在写入性能上可能略低于Classic队列,但在读性能上通常更优,尤其是在高并发场景下。