zoukankan      html  css  js  c++  java
  • 分布式事物

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

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

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

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

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

    2 补偿

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

    实现简单吧。

    不能满足一致性

    3.本地消息表

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

    实现最终一致性

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

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

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

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

  • 相关阅读:
    论信息系统项目沟通管理
    程序员到底怎么了
    Spring DBCP用xml和properties2种格式配置DataSource
    Spring Aop的理解和简单实现
    数据库常见面试题总结
    java常见面试题总结
    【JavaEE】企业面试问题-Java基础
    Java String常见面试题汇总
    JavaScript事件详解
    JavaScript函数使用技巧
  • 原文地址:https://www.cnblogs.com/zhimingxin/p/11246076.html
Copyright © 2011-2022 走看看