RabbitMQ实战(三)-高级特性

  1. 云栖社区>
  2. Java技术进阶>
  3. 博客>
  4. 正文

RabbitMQ实战(三)-高级特性

javaedge 2019-07-01 10:41:27 浏览1836
展开阅读全文

0 相关源码

1 你将学到

  • 如何保证消息百分百投递成功
  • 幂等性
  • 如何避免海量订单生成时消息的重复消费
  • Confirm确认消息、Return返回消息
  • 自定义消费者
  • 消息的ACK与重回队列
  • 限流
  • TTL
  • 死信队列

2 保证消息的百分百投递成功

2.1 Producer 的可靠性投递

2.1.1 要求

  • 保证消息的成功发出
  • 保证MQ节点的成功接收
  • 发送端收到MQ节点(Broker) 确认应答
  • 完善的消息补偿机制

在实际生产中,很难保障前三点的完全可靠,比如在极端的环境中,生产者发送消息失败了,发送端在接受确认应答时突然发生网络闪断等等情况,很难保障可靠性投递,所以就需要有第四点完善的消息补偿机制。

2.1.2 解决方案

2.1.2.1 方案一:消息信息落库,对消息状态进行打标(常见方案)

将消息持久化到DB并设置状态值,收到Consumer的应答就改变当前记录的状态.

再轮询重

网友评论

登录后评论
0/500
评论
javaedge
+ 关注
所属团队号: Java技术进阶