更新時(shí)間:2021-10-29 09:59:08 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽737次
大家在Java學(xué)習(xí)的過(guò)程中不難發(fā)現(xiàn),微服務(wù)架構(gòu) (MSA) 已經(jīng)變得非常流行。然而,一個(gè)常見(jiàn)的問(wèn)題是如何管理跨多個(gè)微服務(wù)的分布式事務(wù)。
當(dāng)微服務(wù)架構(gòu)將單體系統(tǒng)分解為自封裝的服務(wù)時(shí),它可能會(huì)破壞事務(wù)。這意味著單體系統(tǒng)中的本地事務(wù) 現(xiàn)在被分配到多個(gè)服務(wù)中,這些服務(wù)將按順序調(diào)用。
這是一個(gè)使用本地事務(wù)的單片系統(tǒng)的客戶(hù)訂單示例:
在上面的客戶(hù)訂單示例中,如果用戶(hù)向單體系統(tǒng)發(fā)送Put Order 操作,系統(tǒng)將創(chuàng)建一個(gè)本地?cái)?shù)據(jù)庫(kù)事務(wù),該事務(wù)處理多個(gè)數(shù)據(jù)庫(kù)表。如果任何步驟失敗,事務(wù)可以 回滾。這被稱(chēng)為 ACID(原子性、一致性、隔離性、持久性),由數(shù)據(jù)庫(kù)系統(tǒng)保證。
當(dāng)我們分解這個(gè)系統(tǒng)時(shí),我們創(chuàng)建了 CustomerMicroservice和 OrderMicroservice,它們有單獨(dú)的數(shù)據(jù)庫(kù)。這是一個(gè)帶有微服務(wù)的客戶(hù)訂單示例:
當(dāng)用戶(hù)發(fā)出 Put Order請(qǐng)求時(shí),兩個(gè)微服務(wù)都將被調(diào)用以將更改應(yīng)用到它們自己的數(shù)據(jù)庫(kù)中。因?yàn)槭聞?wù)現(xiàn)在跨多個(gè)數(shù)據(jù)庫(kù),所以現(xiàn)在被認(rèn)為是分布式事務(wù)。
以上就是關(guān)于“微服務(wù)事務(wù):微服務(wù)架構(gòu)中分布式事務(wù)的模式”的介紹,大家若想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的內(nèi)容豐富,由淺到深,通俗易懂,適合小白學(xué)習(xí),希望對(duì)大家能夠有所幫助。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743