zoukankan      html  css  js  c++  java
  • RabbitMQ消息如何100%投递成功(六)

    消息如何保障100%的投递成功?

      什么是生产端的可靠性投递?

        保障消息的成功发出

        保障MQ节点的成功接收

        发送端收到MQ节点(Broker)确认应答

        完善的消息进行补偿机制(如网络问题没有返回确认应答)

      生产端的可靠性投递(一)

        BAT/TMD互联网大厂的解决方案:(根据业务和并发量来选择)

          消息落库,对消息状态进行打标(进行变更消息状态)

          消息的延迟投递,做二次确认,回调检查

            第一步进行数据的落库存储(持久化成功)保存状态,第二步发送消息,Broker收到消息,

            第三步将受到的结果应答给生产端,生产端异步监听消费者返回的响应,

            数据刷去出来更新消息的状态,表示消息百分百成功

            发送应答如果网络闪断的话,消息状态永远是初始状态,

            设置规定,分布式任务用来保证同一个时间点抓取消息,消息超时之后还是初始状态,

            将消息抽取出来,继续投递。

      

      生产端可靠性投递(二):

        保障MQ如果第一种可靠性投递,在高并发场景下是否合适?

        消息的延迟投递,做二次确认,回调检查

        先持久化数据在发送消息

  • 相关阅读:
    OpenStack official programs
    在Oracle数据库启动时提示没有权限 ora-01031:insufficient privileges
    顶级工程师应该具备的能力
    Java Servelet
    Struts dispatchAction
    Struts html(标签)
    Java jstl标签使用总结
    Struts1原理解析
    Java Struts(文件下载)
    Java PrepareStatement
  • 原文地址:https://www.cnblogs.com/luhan777/p/11168655.html
Copyright © 2011-2022 走看看