RabbitMQ之高级特性

以订单为例:

1.生产端的可靠性投递(100%发送消息成功)

    1.消息打标

 

 

      1.消息存入数据库---->状态为0

      2.消息发送到brock

      3.brock返回ack(网络可能会闪断)

      4.当接收到ack时------>修改消息状态为1

      5 兜底:定时去搜索状态为1的数据,重新发送到brock,直到数据库状态为1(也可以限制次数,超过次数设置为2)

    2.消息延迟发送

 

 

    1.消息落库

    2.发送第一条消息

    3.几分钟后发送第二条消息

    4.下游服务器监听消息,并进行处理

    5.下游服务器发送确定消息

    6.上下游之间中立服务器,监听是否有确定的消息,若存在信息则持久化存储数据

    7.收到第二条数据时,检查第一条数据是否成功,成功不做任何事情,若不成功则返回第一步重新发送

2.消费端的可靠性投递(避免重复消费)

    1.通过消息的唯一id和数据库主键去重

posted on 2020-08-03 12:10  一号·技术小站  阅读(127)  评论(0编辑  收藏  举报

导航