zoukankan      html  css  js  c++  java
  • 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和数据库主键去重

  • 相关阅读:
    Python作业之分页显示内容
    Codeforces Round #368 (Div. 2)
    数论专项测试——约数个数和(lucas的数论)
    数论专题测试——逆元
    数论专题测试——幸运数字
    bzoj2219: 数论之神
    bzoj3283: 运算器
    梅森素数
    后缀数组
    Hash_1014: [JSOI2008]火星人prefix
  • 原文地址:https://www.cnblogs.com/zyhzsq/p/13425564.html
Copyright © 2011-2022 走看看