幂等性
定义:
不管进行多少次操作,结果都是一样的。
保障方式:
-
唯一ID+指纹码 机制
指纹码:生成的ID/业务规则 -
利用Redis原子性
持久性关键解决的问题:数据库和缓存如何做到原子性?
不持久性,如何设置定时同步策略?
Confirm确认消息
生产端添加监听
Return消息机制
生产端添加监听,处理一些不可路由的消息
消费端自定义监听
使用自定义消费者
代替使用while循环, 使用consumer.nextDelivery方法获取下一条消息,进行消费处理
消费端限流
qos服务质量保证功能:非自动确认消息的前提下,如果一定数目的消息(通过基于consume或者channel设置Qos的值)未被确认前,不进行消费新的消息
注意:消费端autoAck设置为false
消费端ACK与重回队列
消费端的手工ACK和NACK
TTL
两种方式
1、针对消息
2、针对队列
死信队列
几种情况:
1、消息被拒绝且不回队列;
2、消息TTL过期;
3、队列达到最大长度;
队列设置参数 :arguments.put(“x-dead-letter-exchange”,“dlx.exchange”)