zoukankan      html  css  js  c++  java
  • 心累系列-非关系与关系型数据库事务问题说明图解

    • 现有逻辑 -  正确情况

    1569561405995-143.png

    • 现有逻辑 - 异常情况 - MongoDB保存或异常

    1569561497805-381.png

    • 现有逻辑 - 异常情况 - mysql 保存异常

    1569561542633-122.png


    • 优化逻辑 - 1

    1569561601380-100.png

                         注意: 在事务只有一个保存或更新的情况下。

     
    • 优化逻辑 - 2 

    1569561625468-418.png


    • 对比:

    1569563012516-366.png

           二者结果相同!


    • 为什么我们现在会使用现在这种  图 1-1 ?

                    心里学中的 路径依赖理论  惯性使我们会自然按照某种行为继续下去。                             

                    一旦进入某一路径(无论是“好”的还是“坏”的)就可能对这种路径产生依赖。

     

           看下图就能清楚的知道我们为什么会现在这些逻辑了!

    1569562224988-685.png

     我们将 mongoDB 替换为 Mysql 。  结果一目了然。

    • 补充
    1.  不管是现在逻辑还是优化逻辑,都需要保证 MongoDB 业务逻辑上允许重复插入或者 唯一(关键字段或组合关键字段MD5等)。
    2. 优化所解决的问题为 缩短 mysql 或者其他支持事物的数据库  事务锁所占用时间。
    3. 在选择使用数据库或者其他第三方框架的时候,请想明白为什么要使用它!不使用它可以吗?什么时候适合使用它!
    4. 在现有不支持熔断的老项目中,可以考虑引入Sentinel 限流,避免应为单个Http Api 功能照成全局不可以用状态。
  • 相关阅读:
    gearman管理
    php运行方式
    gearman mysql持久化
    gearman安装及初次使用
    消息队列各种比较
    IOC
    post提交/文件上传服务器修改
    protobuf php
    thrift 安装介绍
    qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题
  • 原文地址:https://www.cnblogs.com/atliwen/p/11641775.html
Copyright © 2011-2022 走看看