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

相關文章
相關標籤/搜索