真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

fescar分布式事務(wù)是什么

fescar分布式事務(wù)是什么?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

成都創(chuàng)新互聯(lián)專注于瑪納斯網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供瑪納斯?fàn)I銷型網(wǎng)站建設(shè),瑪納斯網(wǎng)站制作、瑪納斯網(wǎng)頁設(shè)計、瑪納斯網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造瑪納斯網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供瑪納斯網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

1、fescar分布式事務(wù)(概覽)

1.1. 概述

Fescar 是 阿里巴巴 開源的 分布式事務(wù)中間件,以 高效 并且對業(yè)務(wù)0 侵入 的方式,解決 微服務(wù) 場景下面臨的分布式事務(wù)問題。

1.2. Fescar 的發(fā)展歷程

2014 年,阿里中間件團隊發(fā)布 TXC(Taobao Transaction Constructor),為集團內(nèi)應(yīng)用提供分布式事務(wù)服務(wù)。

2016 年,TXC 經(jīng)過產(chǎn)品化改造,以 GTS(Global Transaction Service) 的身份登陸阿里云,成為當(dāng)時業(yè)界唯一一款云上分布式事務(wù)產(chǎn)品 ,在阿云里的公有云、專有云解決方案中,開始服務(wù)于眾多外部客戶。

2019 年起,基于 TXC 和 GTS 的技術(shù)積累,阿里中間件團隊發(fā)起了開源項目 Fescar(Fast & EaSy Commit And Rollback, FESCAR),和社區(qū)一起建設(shè)這個分布式事務(wù)解決方案。

1.3. 設(shè)計初衷

對業(yè)務(wù)無侵入

高性能

1.4. 原理和設(shè)計

1.4.1. 設(shè)計概念圖

fescar分布式事務(wù)是什么

  1. Transaction Coordinator (TC): 事務(wù)協(xié)調(diào)器,維護全局事務(wù)的運行狀態(tài),負(fù)責(zé)協(xié)調(diào)并驅(qū)動全局事務(wù)的提交或回滾。

  2. Transaction Manager (TM): 控制全局事務(wù)的邊界,負(fù)責(zé)開啟一個全局事務(wù),并最終發(fā)起全局提交或全局回滾的決議。

  3. Resource Manager (RM): 控制分支事務(wù),負(fù)責(zé)分支注冊、狀態(tài)匯報,并接收事務(wù)協(xié)調(diào)器的指令,驅(qū)動分支(本地)事務(wù)的提交和回滾。

1.4.2. 與 XA 的差別在什么地方?

fescar分布式事務(wù)是什么

  1. XA 方案的 RM 實際上是在數(shù)據(jù)庫層,RM 本質(zhì)上就是數(shù)據(jù)庫自身(通過提供支持 XA 的驅(qū)動程序來供應(yīng)用使用)。

  2. 而 Fescar 的 RM 是以二方包的形式作為中間件層部署在應(yīng)用程序這一側(cè)的,不依賴與數(shù)據(jù)庫本身對協(xié)議的支持,當(dāng)然也不需要數(shù)據(jù)庫支持 XA 協(xié)議。這點對于微服務(wù)化的架構(gòu)來說是非常重要的:應(yīng)用層不需要為本地事務(wù)和分布式事務(wù)兩類不同場景來適配兩套不同的數(shù)據(jù)庫驅(qū)動。

  3. 這個設(shè)計,剝離了分布式事務(wù)方案對數(shù)據(jù)庫在 協(xié)議支持上的要求

1.4.3. 兩階段提交

1.4.3.1. XA 的 2PC 過程
  1. XA 的 2PC 過程
    fescar分布式事務(wù)是什么

  2. 無論 Phase2 的決議是 commit 還是 rollback,事務(wù)性資源的鎖都要保持到 Phase2 完成才釋放。
    設(shè)想一個正常運行的業(yè)務(wù),大概率是 90% 以上的事務(wù)最終應(yīng)該是成功提交的,我們是否可以在 Phase1 就將本地事務(wù)提交呢?這樣 90% 以上的情況下,可以省去 Phase2 持鎖的時間,整體提高效率。

1.4.3.2. fescar的 2PC 過程

fescar分布式事務(wù)是什么

  1. 分支事務(wù)中數(shù)據(jù)的 本地鎖由本地事務(wù)管理,在分支事務(wù) Phase1 結(jié)束時釋放。

  2. 同時,隨著本地事務(wù)結(jié)束,連接也得以釋放。

  3. 分支事務(wù)中數(shù)據(jù)的 全局鎖在事務(wù)協(xié)調(diào)器側(cè)管理,在決議 Phase2 全局提交時,全局鎖馬上可以釋放。只有在決議全局回滾的情況下,全局鎖才被持有至分支的 Phase2 結(jié)束。

  4. 這個設(shè)計,極大地減少了分支事務(wù)對資源(數(shù)據(jù)和連接)的鎖定時間,給整體并發(fā)和吞吐的提升提供了基礎(chǔ)。

1.4.4. 分支事務(wù)如何提交和回滾?(重點)

  1. 首先,應(yīng)用需要使用 Fescar 的 JDBC 數(shù)據(jù)源代理,也就是 Fescar 的 RM
    fescar分布式事務(wù)是什么

  2. Fescar 的 JDBC 數(shù)據(jù)源代理通過對業(yè)務(wù) SQL 的解析,把業(yè)務(wù)數(shù)據(jù)在更新前后的數(shù)據(jù)鏡像組織成回滾日志,利用 本地事務(wù)的 ACID 特性,將業(yè)務(wù)數(shù)據(jù)的更新和回滾日志的寫入在同一個 本地事務(wù) 中提交。

  3. 這樣,可以保證:任何提交的業(yè)務(wù)數(shù)據(jù)的更新一定有相應(yīng)的回滾日志存在
    fescar分布式事務(wù)是什么

  4. 如果決議是全局提交,此時分支事務(wù)此時已經(jīng)完成提交,不需要同步協(xié)調(diào)處理(只需要異步清理回滾日志),Phase2 可以非??焖俚赝瓿伞?/p>

  5. 如果決議是全局回滾,RM 收到協(xié)調(diào)器發(fā)來的回滾請求,通過 XID 和 Branch ID 找到相應(yīng)的回滾日志記錄,通過回滾記錄生成反向的更新 SQL 并執(zhí)行,以完成分支的回滾。

1.4.5. 事務(wù)傳播機制

  1. XID 是一個全局事務(wù)的唯一標(biāo)識,事務(wù)傳播機制要做的就是把 XID 在服務(wù)調(diào)用鏈路中傳遞下去,并綁定到服務(wù)的事務(wù)上下文中,這樣,服務(wù)鏈路中的數(shù)據(jù)庫更新操作,就都會向該 XID 代表的全局事務(wù)注冊分支,納入同一個全局事務(wù)的管轄。

  2. 基于這個機制,F(xiàn)escar 是可以支持任何微服務(wù) RPC 框架的。只要在特定框架中找到可以透明傳播 XID 的機制即可,比如,Dubbo 的 Filter + RpcContext。

1.4.6. 分支的基本行為模式

作為全局事務(wù)一部分的分支事務(wù),除本身的業(yè)務(wù)邏輯外,都包含 4 個與協(xié)調(diào)器交互的行為:

  1. 分支注冊: 在分支事務(wù)的數(shù)據(jù)操作進行之前,需要向協(xié)調(diào)器注冊,把即將進行的分支事務(wù)數(shù)據(jù)操作,納入一個已經(jīng)開啟的全局事務(wù)的管理中去,在分支注冊成功后,才可以進行數(shù)據(jù)操作。

  2. 狀態(tài)上報: 在分支事務(wù)的數(shù)據(jù)操作完成后,需要向事務(wù)協(xié)調(diào)器上報其執(zhí)行結(jié)果。

  3. 分支提交:響應(yīng)協(xié)調(diào)器發(fā)出的分支事務(wù)提交的請求,完成分支提交。

  4. 分支回滾:響應(yīng)協(xié)調(diào)器發(fā)出的分支事務(wù)回滾的請求,完成分支回滾。
    fescar分布式事務(wù)是什么

    1.4.7. AT 模式分支的行為模式

  5. 業(yè)務(wù)邏輯不需要關(guān)注事務(wù)機制,分支與全局事務(wù)的交互過程自動進行
    fescar分布式事務(wù)是什么

1.4.8. MT 模式分支的行為模式

  1. 業(yè)務(wù)邏輯需要被分解為 Prepare/Commit/Rollback 3 部分,形成一個 MT 分支,加入全局事務(wù)。
    fescar分布式事務(wù)是什么

1.4.9. 混合模式

因為 AT 和 MT 模式的分支從根本上行為模式是一致的,所以可以完全兼容,即,一個全局事務(wù)中,可以同時存在 AT 和 MT 的分支。這樣就可以達(dá)到全面覆蓋業(yè)務(wù)場景的目的:AT 模式可以支持的,使用 AT 模式;AT 模式暫時支持不了的,用 MT 模式來替代。另外,自然的,MT 模式管理的非事務(wù)性資源也可以和支持事務(wù)的關(guān)系型數(shù)據(jù)庫資源一起,納入同一個分布式事務(wù)的管理中。

1.5. 初步的版本規(guī)劃

v0.1.0

  • 微服務(wù)框架支持: Dubbo

  • 數(shù)據(jù)庫支持: MySQL

  • 基于 Spring AOP 的 Annotation

  • 事務(wù)協(xié)調(diào)器: 單機版本

v0.5.x

  • 微服務(wù)框架支持: Spring Cloud

  • MT 模式

  • 支持 TCC 模式事務(wù)的適配

  • 動態(tài)配置和服務(wù)發(fā)現(xiàn)

  • 事務(wù)協(xié)調(diào)器: 高可用集群版本

v0.8.x

  • Metrics

  • 控制臺: 監(jiān)控/部署/升級/擴縮容

v1.0.0

  • General Availability: 生產(chǎn)環(huán)境適用

v1.5.x

  • 數(shù)據(jù)庫支持: Oracle/PostgreSQL/OceanBase

  • 不依賴 Spring AOP 的 Annotation

  • 熱點數(shù)據(jù)的優(yōu)化處理機制

  • RocketMQ 事務(wù)消息納入全局事務(wù)管理

  • NOSQL 納入全局事務(wù)管理的適配機制

  • 支持 HBase

  • 支持 redis

v2.0.0

  • 支持 XA
    當(dāng)然,項目迭代演進的過程,我們最重視的是社區(qū)的聲音,路線圖會和社區(qū)充分交流及時進行調(diào)整。

1.6. 總結(jié)

??看完概覽,我一口鮮血噴出來,明明說好的支持任何微服務(wù)RPC框架,我現(xiàn)在要在適合SpringCloud的分布式事務(wù)解決方案中挑選個,你告訴我預(yù)計下下下下個版本會集成SpringCloud,路過的大神,推薦個吧

1.7. github開源地址

https://github.com/alibaba/fescar/

感謝各位的閱讀!看完上述內(nèi)容,你們對fescar分布式事務(wù)是什么大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:fescar分布式事務(wù)是什么
瀏覽路徑:http://weahome.cn/article/gepjps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部