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和数据库主键去重

  • 相关阅读:
    java面试笔记
    ASP.NET MVC 第三章 异步提交数据
    ASP.NET MVC 第二章 路由和修改路由
    ASP.NET MVC 第一章 我们的第一个MVC例子
    本团队承接软件开发项目
    论面向服务的架构及其应用
    软件架构设计阅读笔记3
    学习15
    软件架构设计阅读笔记2
    学习13
  • 原文地址:https://www.cnblogs.com/zyhzsq/p/13425564.html
Copyright © 2011-2022 走看看