• 分布式事物


    一般分布式事物不能同时满足 高可用性和一致性。如果是强一致性,那可用性,就不一定,实际是在高可用性的前提下,只要满足最终一致性就可以。

    分布式事物的几种解决方案

    1  2阶段提交 如数据库 mysql好多都支持这个

    第一阶段预提交第二阶段 提交。 所有第一阶段提交的事物的 进行投票。都通过都提交。有不通过 就都回滚

    这种能保证强一致性。但是在高并发系统里,真的是渣渣, 

    2 补偿

    try的时候吧资源锁住。然后执行业务的事物。业务成功 资源释放。业务失败 回滚 资源石锁锁定

    实现简单吧。

    不能满足一致性

    3.本地消息表

    好多个事物配置本地的一个消息表,业务执行成功失败都发送消息,饼消息记录下来。本地进行扫描,确保消息都能成功发送。如果业务确实执行失败,那就发消息,让对方进行回滚。

    实现最终一致性

    消息代码和核心业务代码耦合。

    4.事物流的方式。事物发生有一定的顺序

    业务按a-》b->c发生。如果执行成功就都成功。如果执行失败,原路回滚。

    只支持特定场景。能保证强一致性。但是在高并发系统也是渣渣。

  • 相关阅读:
    js设计模式-工厂模式
    js设计模式-构造函数模式
    js设计模式-单例模式
    为什么要用事件委托and 为什么移动端click事件要设计延迟
    css属性支持
    翻译express
    无法点击,无法获取inputvalue值得原因
    cookie删除不掉的问题
    56.com面试
    angular.js phonecat翻译
  • 原文地址:https://www.cnblogs.com/zhimingxin/p/11246076.html
Copyright © 2020-2023  润新知