消息的可靠性如何保证

发送端

  1. 需要RabbitMQ发送端确认机制,确认消息成功发送到RabbitMQ并被处理。 (如果没有正确发送,要返回报错信息,提醒业务方处理)
  2. 需要RabbitMQ消息返回机制,如果没有路由到对应的队列,中间件会通知发送端。(也应该要返回报错信息,提醒业务方处理)

消费端

  1. 需要RabbitMQ确认机制,确认消息没有发生处理异常。(消费方消费的消息,才应该删除这条消息,否则应该留在RabbitMQ里,等待异常的处理)
  2. 需要RabbitMQ消费端限流,限制消息推送速度,保障消费端服务稳定。(不能推的很快)

RabbitMQ

  1. 防止消息大量积压,配合RabbitMQ消息过期时间,避免对RabbitMQ自身产生压力过大。
  2. 如果当消息过期后,过期丢弃机制,对数据安全产生影响。采用死信队列,收集过期消息,对接报警系统。

总结

  1. 发送端确认机制(exchange确认和queue确认,没收到,那么应该异常处理)
  2. 消费端确认机制(ack)
  3. 消费端限流机制
  4. 消息过期机制
  5. 死信队列(消息过期删掉,这样做不好,消息就是数据,对于数据删除操作,一定要非常慎重。RabbitMQ解决方案:死信队列)

RabbitMQ该如何学习

计算机学科是一个要求动手能力很强的学科,通过实战,用实际项目,把知识牢牢掌握住。

《Go语言+RabbitMQ实战课》-课程目录海报 《Go+RabbitMQ课程》-优惠券
添加微信 公众号更多内容
wechat gzh