mq

投递流程

消息投递到exchang,根据路由key路由到对应queen

exchang类型

direct、topic、fanout、hearders
direct精确匹配,topic模糊匹配
通常使用fanout(不用路由,效率最快,默认使用)

可靠性投递方案

  1. 消息落库,本地db存储(业务存储、消息存储),投递返回成功,修改数据状态,状态长时间未改,补偿策略重新投递;在这里插入图片描述
    BIZ DB:订单数据库(或其他具体业务)
    MSG DB:消息数据库
    第1步:将订单入库,创建一条MSG(状态为0) 入MSG DB库
    第2步:将消息发出去
    第3步:监听消息应答(来自Broker)
    第4步:修改消息的状态为1(成功)
    第5步:分布式定时任务抓取状态为0的消息
    第6步:将状态为0的消息重发
    第7步:如果尝试了3次(可按实际情况修改)以上则将状态置为2(消息投递失败状态)
  2. 延迟投递,少一次db,消息同时投递两条,一条延时投递,回调服务接受第一条投递结果,投递成功存库,延时投递
    在这里插入图片描述

第二种方案可以避免消息对象与业务对象同时入库

Upstream service:上游服务,可能为生产端
Downstream service:下游服务,可能为消费端
MQ Broker:可能为集群
Callback service:回调服务,监听confirm消息

第1步:首先业务数据落库,成功才后第一次消息发送
第2步:紧着着发送第2条消息(可以用于寻找第1条消息),用于延迟(可能2,3分钟后才发送)消息投递检查
第3步:Broker端收到消息后,消费端进行消息处理
第4步:处理成功后,发送confirm消息
第5步:收到confirm消息后,将消息进行持久化存储
第6步:收到了delay消息,检查DB数据库,若对应的第1条消息已处理完成,则不做任何事情;若收到了delay消息,检查DB数据库,发现对应的第1条消息处理失败(或无记录),则发送重传命令到上游服务,循环第1步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值