• 分布式事物


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

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

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

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

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

    2 补偿

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

    实现简单吧。

    不能满足一致性

    3.本地消息表

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

    实现最终一致性

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

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

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

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

  • 相关阅读:
    jekins构建自动化项目的步骤
    CRT 和mysql 中文乱码解决方式
    Jenkins的配置(rpm red hat方式)
    MapReduce job.setNumReduceTasks(0)思考
    浏览器angent分析工具
    npm中的 --save-dev
    computed与methods的异同
    JS函数种类详解
    Vue.js和Nodejs的关系
    AJAX复习笔记
  • 原文地址:https://www.cnblogs.com/zhimingxin/p/11246076.html
Copyright © 2020-2023  润新知