RabbitMQ之消息模式
文章目录 消息100%的投递 方案1一 消息落库,对消息状态进行打标 方案二 消息的延迟投递,做二次确认,回调检查 幂等性概念 Confirm确认消息 Return返回消息 自定义消费者 消息100%的投递 消息如何保障100%的投递成功? 什么是生产端的可靠性投递? 保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点(Broker)确认应答 完善的消息进行补偿机制 BAT/TMD互联网大厂的解决方案: 消息落库,对消息状态进行打标 消息的延迟投递,做二次确认,回调检查 方案1一 消息落库,对消息状态进行打标 流程如下: 第1步:将订单入库,创建一条MSG(状态为0) 入MSG DB库 第2步:将消息发出去 第3步:监听消息应答(来自Broker) 第4步:修改消息的状态为1(成功) 第5步:分布式定时任务抓取状态为0的消息 第6步:将状态为0的消息重发 第7步:如果尝试了3次(可按实际情况修改)以上则将状态置为2(消息投递失败状态) 方案二 消息的延迟投递,做二次确认,回调检查 第1步:首先业务数据落库,成功才后第一次消息发送 第2步:紧着着发送第2条消息(可以用于寻找第1条消息),用于延迟(可能2,3分钟后才发送)消息投递检查 第3步:Broker端收到消息后,消费端进行消息处理 第4步:处理成功后,发送confirm消息 第5步:收到confirm消息后