happylifeplat-tcc
淺談分布式事務(wù)原理及其應(yīng)用場(chǎng)景
概念:
分布式事務(wù)就是指事務(wù)的參與者碧库、支持事務(wù)的服務(wù)器中贝、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。以上是百度百科的解釋驼唱,簡(jiǎn)單的說弹灭, 就是一次大的操作由不同的小操作組成毁靶,這些小的操作分布在不同的服務(wù)器上剂习,且屬于不同的應(yīng)用蛮位,分布式事務(wù)需要保證這些小操作要么全部成功,要么全部失敗鳞绕。 本質(zhì)上來說失仁,分布式事務(wù)就是為了保證不同數(shù)據(jù)庫的數(shù)據(jù)一致性。
分布式事務(wù)的應(yīng)用場(chǎng)景:
事務(wù)必須滿足傳統(tǒng)事務(wù)的特性们何,即原子性萄焦,一致性,分離性和持久性冤竹。但是分布式事務(wù)處理過程中拂封,
當(dāng)數(shù)據(jù)庫單表一年產(chǎn)生的數(shù)據(jù)超過1000W茬射,那么就要考慮分庫分表,具體分庫分表的原理在此不做解釋烘苹,以后有空詳細(xì)說躲株,簡(jiǎn)單的說就是原來的一個(gè)數(shù)據(jù)庫變成了多個(gè)數(shù)據(jù)庫片部。這時(shí)候镣衡,如果一個(gè)操作既訪問01庫,又訪問02庫档悠,而且要保證數(shù)據(jù)的一致性廊鸥,那么就要用到分布式事務(wù)。
所謂的SOA化辖所,就是業(yè)務(wù)的服務(wù)化惰说。比如原來單機(jī)支撐了整個(gè)電商網(wǎng)站,現(xiàn)在對(duì)整個(gè)網(wǎng)站進(jìn)行拆解缘回,分離出了訂單中心吆视、用戶中心、庫存中心酥宴。對(duì)于訂單中心啦吧,有 專門的數(shù)據(jù)庫存儲(chǔ)訂單信息,用戶中心也有專門的數(shù)據(jù)庫存儲(chǔ)用戶信息拙寡,庫存中心也會(huì)有專門的數(shù)據(jù)庫存儲(chǔ)庫存信息授滓。這時(shí)候如果要同時(shí)對(duì)訂單和庫存進(jìn)行操作,那 么就會(huì)涉及到訂單數(shù)據(jù)庫和庫存數(shù)據(jù)庫肆糕,為了保證數(shù)據(jù)一致性般堆,就需要用到分布式事務(wù)。
另外還比如:
某些場(chǎng)地比如在電商系統(tǒng)中诚啃,當(dāng)有用戶下單后淮摔,除了在訂單表插入一條記錄外,對(duì)應(yīng)商品表的這個(gè)商品數(shù)量必須減1吧始赎,怎么保證和橙?
在搜索廣告系統(tǒng)中,當(dāng)用戶點(diǎn)擊某廣告后极阅,除了在點(diǎn)擊事件表中增加一條記錄外
分布式事務(wù)方案之tcc開源框架胃碾。基于java語言來開發(fā)(JDK1.8)筋搏,支持dubbo仆百,springcloud等rpc框架進(jìn)行分布式事務(wù)。
參考鏈接
https://github.com/yu199195/happylifeplat-tcc
https://www.cnblogs.com/clarke157/p/8111685.html
http://www.roncoo.com/article/detail/124243
https://www.txlcn.org/v4/index.html