RabbitMQ进阶篇

消息可靠性传递

故障1: 消息发送失败

  • 生产者确认:在生产者实施消息发送确认机制,确保消息成功到达交换机和队列。若发送失败,可尝试重新发送。
  • 备份交换机:为交换机配置备份交换机。在投递失败时,消息将自动转至备份交换机,以提高消息传递的可靠性。

在Python Pika客户端如果channel.basic_publish成功返回,无异常抛出,也即代表消息成功发送到消息队列服务器

故障2: 消息队列服务器故障

  • 持久化:将消息持久化存储至硬盘,确保服务器重启后消息不会丢失。

故障3: 消息消费失败

  • ACK:消费者在成功消费消息后,向服务器返回ACK确认信息,随后消息队列将删除该消息。
  • NACK:若消费失败,消费者向服务器返回NACK信息,并可采取以下四种处理方式:
    • 重新入队:设置requeue=true,使消息重新分发,要求消费端接口具备幂等性。
    • 死信队列:设置requeue=false并指定死信队列,将消息转为死信后存入死信队列,通常推荐此方法。
    • 直接丢弃:对于不重要的消息,设置requeue=false直接丢弃,不进行后续处理。
    • 写入数据库:设置requeue=false,将死信记录于数据库中,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值