消息的可靠性问题,保证状态一致性
生产者的可靠性
- 生产者重连
- 生产者连接失败的失败重试连接
- 生产者确认
- 到达交换机后,路由失败,基本不会出现这种情况;
- 到达交换机后,到达队列;
- 到达交换机后,到达队列后,持久化;
- 确认时选异步回调 以下2种配置都要写
- ConfirmCallback 确认 “消息到交换机”;
- ReturnCallback 确认 “消息从交换机到队列”。
- 生产确认配置
- 编写消息成功或失败后的回调函数 ConfirmCallback 确认 “消息到交换机”;
- 实际代码 ConfirmCallback 确认 “消息到交换机”;
- 生产者确定代码 ReturnCallback 确认 “消息从交换机到队列”。
- 实际代码 ReturnCallback 确认 “消息从交换机到队列”。
MQ的可靠性
- 数据持久化解决MQ不可靠的问题
- MQ自动将交换机和队列设置为持久化
- 消息持久化
- 消息非持久化和持久化的方式对比
- 非持久化,会出现阻塞情况
- 消息持久化的方式