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 功能照成全局不可以用状态。
  • 相关阅读:
    spark 程序 TopN FileSort SecondarySort 的出错解决办法
    预报温度和体感温度不是一回事
    搜索引擎 搜索技巧
    scrapy 爬虫框架
    scala-sbt
    英语削笔机
    php 一句话木马
    [CS充实之路] CS50 WEEK 1
    UBUNTU 16.04 编译 OPENJDK8
    使用logrotate分割Tomcat的catalina日志
  • 原文地址:https://www.cnblogs.com/atliwen/p/11641775.html
Copyright © 2011-2022 走看看