JAVA事务

#1、事务概念 参考文献:
http://www.cnblogs.com/kristain/articles/2038397.html
http://blog.csdn.net/fg2006/article/details/6937413html

spring事务控制:
http://www.blogjava.net/robbie/archive/2009/04/05/264003.html
spring事务同步 #2、分布式事务 在电商等业务中,系统通常由多个独立的服务组成,分布式事务旨为解决分布式调用时候数据的一致性;java

强一致性:
当更新操做完成以后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现须要牺牲可用性。git

弱一致性:
系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功以后,不承诺当即能够读到最新写入的值,也不会具体的承诺多久以后能够读到。github

最终一致性:
弱一致性的特定形式。系统保证在没有后续更新的前提下,系统最终返回上一次更新操做的值。在没有故障发生的前提下,不一致窗口的时间主要受通讯延迟,系统负载和复制副本的个数影响。DNS 是一个典型的最终一致性系统。spring

分布式事务原则:编程

  • 真正重要的是知足业务需求,而不是追求抽象、绝对的系统特性;
  • 幂等性:重复调用屡次产生的业务结果与调用一次产生的业务结果相同;实现方式:
    1)经过业务操做自己实现幂等性;如token,时间戳
    2)系统缓存全部请求与处理结果;检测到重复请求以后,自动返回;如分布式锁机制
  • 补偿机制
  • CAP定理:对于共享数据系统,须要知足
    1)Consistency(一致性): 全部用户看到一致的数据
    2)Availability(可用性): 总能找到一个可用的数据复本
    3)Tolerance to NetworkPartition(分区容忍性): 即便在系统被分区的状况下,仍然知足上述两点
  • 酸碱平衡(ACID-BASEBalance)
    1)BA(Basic Availability):基本可用性
    2)S(Soft state):柔性状态
    3)E(Eventuall consistency):最终一致性

实现方案:缓存

  • 按期校对
    输入图片说明架构

  • 2PC
    输入图片说明框架

输入图片说明

框架与设施建设目标思考:

  • 一致的架构风格
  • 简单的编程模型
  • 万无一失
  • 没商量: 高可用与可伸缩
  • 轻量,可扩展
  • 尽力优化性能
  • 利用现有基础设施

参考程立-大规模SOA系统中的分布事务处理
http://www.slideshare.net/Fenng/soa-dtp-by-alipay-cheng-li-presentation?type=powerpoint

相关文章
相关标签/搜索