zoukankan      html  css  js  c++  java
  • 分布式事务(第07篇)分布式事务解决方法-最大努力交付

    一 什么是最大努力交付

    事务发起方服务执行完本地事务后向消息中间件发送一条消息,消息中间件发送消息给通知服务,通知服务发送消息给下游系统或者服务。

    二 使用最大努力交付的前提

    同使用可靠消息最终一致性的前提一样:下游服务执行本地事务失败不会对上游服务造成影响。事务不要求强一致性

    三 最大努力交付与可靠消息最终一致区别

    • 在消息中间件与下游服务或系统之间增加了一个通知服务。
    • 通知服务会根据频率规则通知下游服务或者系统。
    • 上游服务应该提供一个校对接口给下游服务查询是否应该执行某某业务。在下游服务无法收到通知服务的消息时使用。

    四 增加一个通知服务的好处

    1. 对外屏蔽MQ。
    2. 与其它企业交互时就需要这种模式。
    3. 减轻MQ压力,对于一些最终一致性时间敏感度比较低的服务就可以使用这种模式。

    五 总结

    • 最大努力交付模式也必须解决可靠消息最终一致性的三个问题。
      上游服务的本地事务与发送消息的原子性
      通知服务必须能够从消息中间件接受到消息
      通知服务处理消息的幂等性
    • 对于一些最终一致性时间敏感度比较低的服务就可以使用这种模式。
    • 与其它企业交互时使用这种模式。
  • 相关阅读:
    写在开篇——过往总结
    线程池原理实现
    MD5加密工具类
    跨域及jsonp
    四种xml的解析方式
    浅析正则表达式—(原理篇)
    用JavaScript添加选择按钮的背景颜色和juqery添加选择按钮的背景色
    怎么用JavaScript实现tab切换
    vue.js2.0:如何搭建开发环境及构建项目
    vscode如何用浏览器预览运行html文件
  • 原文地址:https://www.cnblogs.com/NEWHOM/p/12424444.html
Copyright © 2011-2022 走看看