zoukankan      html  css  js  c++  java
  • 【分布式事务】分布式事务的实现

    如果在多个服务中需要对不同的数据库进行操作。

      因为不同服务操作的数据库都不同,所以保证在同一个事务中完成操作显然是不科学的。

    那实现分布式事务的思想:

      1》  方法入口,创建一条日志记录,状态定义为初始状态,即保存本条日志记录【可以保存在数据库中,也可以写出到本地磁盘文件】

      2》  可以在异步线程或在定时任务中,去读取日志表中,是否有满足条件的日志需要处理【同时为了放置多个示例开启多个定时任务,可以将定时任务放入redis,保证同一时刻只有一个定时任务在执行】

      3》  如果有需要处理的任务,先取出本条日志,然后分别对不同服务进行处理,哪一个服务处理完成,就设置本服务对应的状态为成功标志

      4》  只有所有服务对应标志都成功,才表示次服务最终完成【定时任务完成的同时删除redis中的定时任务,定时任务完成不代表服务最终完成,有可能是其中一个服务成功,另一个服务结束】

    以此来实现分布式事务的思想。

    示例代码:

    跳转到示例代码:

  • 相关阅读:
    Access小用之感
    PHP学习之路今日开启
    IBatis初体验2
    PHP之PDO介绍
    javascript key code 大全
    如何将虚拟机中的Linux系统与shell终端连接
    linux磁盘情况查询
    vi和vim编辑器的使用
    Linux磁盘分区,挂载
    (转)Android Dalvik虚拟机初识
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9288387.html
Copyright © 2011-2022 走看看