農林漁牧網

您現在的位置是:首頁 > 農業

6大特性解決雲上微服資料一致性

2021-06-30由 華為雲 發表于 農業

可用資產擔保是什麼

早期線上購物,是不是出現過買家下單成功,付了錢卻沒收到貨…

賣家接到投訴卻沒找到訂單記錄,生生吃了個差評卻無處說理…

但是為什麼現在這種情況卻沒有了?

就是因為分散式事務的出現。

“一手交錢,一手交貨”就是一個事務的例子,交錢和交貨必須全部成功,事務才算成功。一個活動失敗,另一個也要撤銷。

什麼是事務?

事務可以看做是一次大的活動,它由不同的小活動組成,這些活動要麼全部成功,要麼全部失敗。

事務需要有的ACID特徵:

Atomicity 原子性

整個事務的所有操作,要麼全部成功要麼全部失敗

Consistency 一致性

事務的執行不能破壞資料庫資料的完整性和一致性,一個事務在執行之前和執行之後,資料庫都必須處於一致性狀態,比如資料發生故障,不能有一部分資料寫成功,一部分不成功。

Consistency比較難理解。所以舉個具體例子:

A要向B支付100元,而A的賬戶中只有90元,並且我們給定賬戶餘額這一列的約束是:不能小於0。那麼很明顯這條事務執行會失敗,因為90-100=-10,小於我們所給定的約束。這個例子裡,支付之前我們資料庫裡的資料都是符合約束的,但是如果事務執行成功了,我們的資料庫資料就破壞約束了,因此事務不能成功,這裡我們說事務提供了一致性的保證。

Isolation 隔離性

多個事務併發執行操作同一資料,事務之間不能有干擾。

Durability 永續性

一旦事務提交,那麼它對資料庫中的對應資料的狀態的變更就會永久儲存到資料庫中,就算資料庫宕機,等它恢復後,資料也能恢復到已提交事務完成的狀態。

微服務趨勢下的資料一致性保證

當前隨著微服務,容器化,等技術的逐步成熟和火熱,單體應用被拆分成了不同的功能服務,解耦之後的服務,互相呼叫,儼然成了典型的分散式系統,資料的一致性處理便成了剛需能力。傳統的分散式事務處理,針對一個服務下的一個數據庫進行處理。單體架構到微服務架構後,一個數據庫本地事務變為跨服務的多個數據庫全域性事務,怎麼保證多個數據庫的資料一致性成為了企業亟待解決的問題。

面對的痛點主要有三點:

1)侵入性大耦合度高

客戶往往專注於業務程式碼的寫作,對於分散式事務的處理往往比較痛苦,而且還需要修改業務程式碼,可能涉及修改業務邏輯。

2)自研代價過大,雲上跨AZ部署複雜

如果自研的分散式事務服務,需要滿足跨AZ容災能力的話,需要在另外一個region下購買物理資源,再部署一次自研的分散式事務微服務。更新迭代需要自己來維護,增加了運維成本和釋出難度。

3)如何支援多語言的框架,多資料庫型別

隨著業務框架的更新版本,新增資料庫型別,或者新增新的業務框架,則需要自己去維護,更新,這個自研分散式事務服務,對接多語言的框架,多資料庫場景。

6大特性解決雲上微服資料一致性

華為雲分散式事務管理DTM6大特性解決雲上微服資料一致性。

1)支援非侵入事務與 TCC 兩種事務模式

非侵入模式支援0業務程式碼修改的接入方式,開通DTM分散式事務管理服務,購買分散式事務引擎,SDK引入DTM client,在需要參與分散式事務的服務中,新增DTM資料來源,在程式碼中新增非侵入模式註解。TCC模式作為分散式事務處理的一種補充,主要用於支援更加廣泛的資料庫型別,例如NoSql型別資料庫。

2)業界領先的高效能(單叢集10w+ TPS)

DTM所有元件支撐水平擴充套件,利用獨家的演算法和架構,支援超高TPS的支援能力。

3)DTM支援跨 AZ 高可用

DTM 跨AZ採用2個可用區+仲裁AZ的方式進行容災。正常工作狀態下,有2套DTM server參與到事務處理中,互相之間跨AZ備份資料。當其中一個AZ掛了之後,由於之前一直在跨AZ同步資料,因此第二AZ能馬上承接工作。

4)微服務框架廣泛支援

支援主流的框架,例如ServiceComb,Spring Cloud,Dubbo等。

5)自動化運維管控、功能豐富的控制檯

DTM擁有自動化運維控制檯,實時監控DTM引擎狀態,事務上報狀態,對事務狀態進行資料分析。並且對多個引擎,有統一的管理面進行集中式管理,切換自如。

6)資料庫廣泛支援

當前非侵入模式支援 MySQL,OpenGauss,TCC模式支援所有資料庫型別。

分散式業務場景

1)金融場景下分散式事務管理

高頻交易

證券、基金公司的高頻交易,對TPS要求極高。DTM的超高效能,可保障高頻交易不受效能約束。推薦使用CSE+DTM組合,CSE服務呼叫效能極高,DTM也支援超高效能TPS,並且二者天然相容,直接接入,避免瓶頸。透過高效能帶來的資料高效同步,可助力金融機構減少每筆交易時長,用時間贏得財富。

轉賬

轉賬業務往往涉及多資料庫與高併發量,例如實時到賬,需要保證強一致性,普通轉賬保證最終一致性。最終高效且正確的轉賬就是金融服務的基礎。因此在轉賬場景中,支付和轉賬作為分散式事務典型場景,在應用 DTM 後,可輕鬆應對高併發,分庫分表的業務模型,滿足業務需求。

2)電商/網際網路場景

訂單、會員卡、成長值、積分

以積分商城為例,使用會員卡餘額購買商品,會涉及到、扣減賬戶餘額(資料庫)、增加賬戶積分數量(資料庫)、會員卡成長值提升、歷史訂單增加等服務。目前使用對賬的方式來應對此類場景的效能較低,涉及業務擴充套件或改變時改造成本高。使用DTM進行簡單的改造接入,即可完成資料的同步。

擔保交易

以電商搶購支付場景為例,秒殺搶購併髮量高,效能要求高。通常流程嘗試扣除使用者可用資金,轉移預凍結資金,增加中間賬戶可用資金(擔保交易不能立即把錢打給商戶,需要有一箇中間賬戶來暫存),七天後需要將資金從中間賬戶劃撥給商戶。採用DTM可以大規模的搶購場景,保證客戶成功支付,等到低峰期時,再慢慢消化支付資料,非同步地執行資金到賬流程,並且最終保證資金能順利轉入商戶的賬戶中。

3)政務領域場景

生活繳費

作為支付、轉賬場景的延伸,生活繳費在政務系統中不可或缺。例如水電費,電話費,上網資費等,都透過手機APP或者電腦端進行處理繳費。政務系統需要對繳費資訊進行一致性處理,DTM可以保證,關聯資訊同步修改,跨系統資訊及時同步。

跨地域資訊即刻同步

當前各地域政府機關,往往有自己的資料庫,人員流動,企業資訊備案,都最初在本地進行登記備案。資訊變更頻繁的資訊化時代,僅透過手工方式進行資訊變更後的同步,會帶來髒讀和髒寫的問題,採用DTM可以保證政務機關的資訊高效同步,精準一致。

華為雲DTM是華為雲分散式事務管理中介軟體,提供了高可靠的分散式事務處理能力。支援跨微服務事務、跨庫事務、多資料來源、非侵入式事務、TCC事務、事務監控、高TPS事務處理能力及資料分析等功能場景,幫助企業滿足核心業務資料(如交易資料)一致性需求。