Seata 乙個簡單可擴充套件自治事務架構

2021-09-25 04:22:20 字數 1364 閱讀 6360

乙個高效能,易於上手的,用於微服務架構的分布式事務解決方案。
微服務中的分布式事務問題傳統的單體應用,它的業務元件通常有3個模組。它使用乙個單體的本地資料來源,通常地,使用本地事務保證資料一致性。

在微服務中就會變得不一樣了,上面提到的3個模組將拆分成3個不同的資料來源。每個單體的服務自然可以使用本地事務保證資料一致性。

但是在整個業務邏輯範圍上會出現什麼情況呢?

seata是用來解決上面提到的問題的。

首先,如何定義乙個** distributed transaction? (分布式事務)**

我們說,乙個分布式事務是由分支事務組成的全域性事務,通常,** 分支事務就是本地事務**。

seata有三個基本元件:

transaction coordinator(tc)

transaction manager™

resource manager(rm)

tc(事務協調器):維護全域性狀態和分支事務,負責提交或者回滾。

tm(事務管理器):定義全域性事務的範圍:定義乙個全域性事務,提交或者回滾乙個全域性事務。

rm(資源管理器):管理每個分支事務的事務資源,與tc協調,註冊分支事務並且上報分支事務狀態,並且驅動分支事務提交或者回滾。

seata管理的分布式事務的乙個典型的生命週期:

tm呼叫tc開始乙個新的全域性事務,tc生成乙個表示全域性事務的xid.

xid通過微服務的呼叫鏈傳播。

rm註冊本地事務作為xid對應的全域性事務的乙個分支到tc上。

tm要求tc提交或者回滾xid對應的全域性事務。

tc要求xid下所有對應分支事務,完成後提交或者回滾。

簡單幾步,教你部署乙個可擴充套件微服務系統!

當你構建乙個微服務時,你最看重什麼?乙個完全管理和可擴充套件的系統?因為託管 的選擇有很多,例如ec2,ecs,elastic beanstalk,lambda,所以很多人不知道該如何下手。雖然每個人部署微服務模式都有自己的方式,但是下面這個模式為可擴充套件微服務架構提供了很好的結構。首先第乙個,也...

乙個簡單的PHP擴充套件

php擴充套件開發 安裝php posix定時器 timer settime 我們先假設業務場景,是需要有這麼乙個擴充套件,提供乙個叫ccvita string的函式,他的主要作用是返回一段字元。這個業務場景實在太假,大家就這麼看看吧 對應的php 可能是這樣 function ccvita str...

編寫乙個簡單的php C擴充套件

注意此處生成的擴充套件是linux版的php擴充套件 故生成的擴充套件結尾是.so的檔案 nginx 1.15.10 mysql 5.6.44 php 7.0 環境是lnmp 1.找到php的安裝目錄下的ext資料夾 且存在ext skel檔案 2.ext skel extname test add...