天天看點

解讀金融高頻交易不出錯的金手指:分布式事務管理

摘要:雲原生2.0時代,微服務架構下如何保證資料的一緻性是非常重要的一個課題。4月8日,在華為雲TechWave全球技術峰會分布式雲分論壇上,華為雲技術專家深度解讀華為雲分布式事務管理DTM。

雲原生2.0時代,微服務架構下如何保證資料的一緻性是非常重要的一個課題。4月8日,在華為雲TechWave全球技術峰會分布式雲分論壇上,華為雲技術專家深度解讀華為雲分布式事務管理DTM。

早期線上購物,是不是出現過買家下單成功,付了錢卻沒收到貨;賣家接到投訴卻沒找到訂單記錄,生生吃了個差評卻無處說理;但是為什麼現在這種情況卻沒有了?就是因為分布式事務的出現。“一手交錢,一手交貨”就是一個事務的例子,交錢和交貨必須全部成功,事務才算成功。一個活動失敗,另一個也要撤銷。

什麼是事務?

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

Atomicity 原子性:整個事務的所有操作,要麼全部成功要麼全部失敗。

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

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

Isolation 隔離性:多個事務并發執行操作同一資料,事務之間不能有幹擾。

Durability 持久性:一旦事務送出,那麼它對資料庫中的對應資料的狀态的變更就會永久儲存到資料庫中,就算資料庫當機,等它恢複後,資料也能恢複到已送出事務完成的狀态。

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

目前随着微服務,容器化,等技術的逐漸成熟和火熱,單體應用被拆分成了不同的功能服務,解耦之後的服務,互相調用,俨然成了典型的分布式系統,資料的一緻性處理便成了剛需能力。傳統的分布式事務處理,針對一個服務下的一個資料庫進行處理。單體架構到微服務架構後,一個資料庫本地事務變為跨服務的多個資料庫全局事務,怎麼保證多個資料庫的資料一緻性成為了企業亟待解決的問題。

面對的痛點主要有三點:

1)侵入性大耦合度高

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

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

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

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

随着業務架構的更新版本,新增資料庫類型,或者新增新的業務架構,則需要自己去維護,更新,這個自研分布式事務服務,對接多語言的架構、多資料庫場景。

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

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

華為雲分布式事務管理DTM的6大特性解決雲上微服資料一緻性。

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作為華為雲分布式事務管理中間件,會對接更多的涉及資料一緻性處理的服務。例如華為雲的 serverless微服務,appCube,容器等。

DTM也将作為一款強大的分布式事務管理中間件,支撐各行各業,各種服務,去處理資料的一緻性。

 本文分享自華為雲社群《華為雲分布式事務管理DTM:6大特性解決雲上微服資料一緻性》,原文作者:灰灰哒。

點選關注,第一時間了解華為雲新鮮技術~

繼續閱讀