Seata(二)

一左电、AT模式開發(fā)實戰(zhàn)

1)準(zhǔn)備階段

2)啟動階段

2)正常提交

3)異常回滾

4)undo_log

before_image
after_image
放開斷點
庫存跟before_image一致

5)執(zhí)行流程

二、TCC模式開發(fā)實戰(zhàn)

1)準(zhǔn)備階段

2)配置多數(shù)據(jù)源

3)正常提交

4)異常回滾

5)執(zhí)行流程

通過接口中注解管理后續(xù)的二階段提交和回滾
TCC和AT的區(qū)別是需要我們自定義二階段commit和rollback邏輯

三慧域、Seata AT模式源碼解析(Client端)

1)概述

TC主要在Server端,通過Netty進(jìn)行通訊

2)事務(wù)日志rollback_info內(nèi)容解析

TableRecords

TableMeta

Row

Field

3)事務(wù)日志管理器UndoLogManager

4)Seata數(shù)據(jù)源代理

4.1)DataSourceProxy數(shù)據(jù)源代理類

沒做什么事浪读,主要針對構(gòu)造方法注入的targetDataSource進(jìn)行操作
DefaultResourceManager
日常開發(fā)表元數(shù)據(jù)信息配置在properties配置文件中除非更新版本不會變昔榴,如果配到配置中心就有機(jī)會被改變

4.2)ResourceManager資源管理器(RM)

不開啟全局鎖可能出現(xiàn)分布式事務(wù)過程中數(shù)據(jù)被其他服務(wù)修改,但是效率高
DefaultResourceManager碘橘,默認(rèn)BranchType為AT模式
Seata的jar包
EnhancedServiceLoader通過ResourceManager.class找到此文件獲取對應(yīng)實現(xiàn)類
通過Netty將資源向TC注冊

4.3)ConnectionProxy連接代理器類

步驟a:LOCK_RETRY_POLICY.execute()

步驟b:doCommit()——分支事務(wù)提交

互订、

register()

向TC注冊分支成功后返回分支Id
將返回的分支Id存儲在ConnectionContext中

flushUndoLogs()

步驟2
步驟2
步驟3
步驟3

report()

步驟b:doCommit()——本地事務(wù)提交并查詢?nèi)宙i

步驟c:rollback()

4.4)StatementProxy和PrepareStatementProxy

AbstractStatementProxy
StatementProxy
ExecuteTemplate

SQLRecognizers

通過dbType選擇不同數(shù)據(jù)庫,通過sqlType確定Delete痘拆、Insert仰禽、Select、Update
ExecuteTemplate
ExecuteTemplate

Executor

生成前鏡像
默認(rèn)ONLY_CARE_UPDATE_COLUMNS為true纺蛆,一般只查更新了的列

5)AT模式的兩階段提交

5.1)一階段處理

5.2)二階段的提交處理

addToCommitQueue(context)一般都是先返回二階段提交狀態(tài)吐葵,接下來再異步刪除UndoLog

5.3)二階段的回滾處理

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市犹撒,隨后出現(xiàn)的幾起案子折联,更是在濱河造成了極大的恐慌,老刑警劉巖识颊,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奕坟,居然都是意外死亡祥款,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門月杉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刃跛,“玉大人,你說我怎么就攤上這事苛萎〗瓣迹” “怎么了检号?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛙酪。 經(jīng)常有香客問我齐苛,道長,這世上最難降的妖魔是什么桂塞? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任凹蜂,我火速辦了婚禮,結(jié)果婚禮上阁危,老公的妹妹穿的比我還像新娘玛痊。我一直安慰自己,他們只是感情好狂打,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布擂煞。 她就那樣靜靜地躺著,像睡著了一般趴乡。 火紅的嫁衣襯著肌膚如雪颈娜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天浙宜,我揣著相機(jī)與錄音官辽,去河邊找鬼。 笑死粟瞬,一個胖子當(dāng)著我的面吹牛同仆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播裙品,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俗批,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了市怎?” 一聲冷哼從身側(cè)響起岁忘,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎区匠,沒想到半個月后干像,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驰弄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年麻汰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片戚篙。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡五鲫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岔擂,到底是詐尸還是另有隱情位喂,我是刑警寧澤浪耘,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站塑崖,受9級特大地震影響七冲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弃舒,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一癞埠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聋呢,春花似錦苗踪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至器贩,卻和暖如春颅夺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛹稍。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工吧黄, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唆姐。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓僵娃,卻偏偏與公主長得像彪薛,于是被迫代替她去往敵國和親星掰。 傳聞我的和親對象是個殘疾皇子骗奖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容