作者簡介yUq28資訊網——每日最新資訊28at.com
py.an,攜程后端研發經理,關注性能優化、技術架構等領域yUq28資訊網——每日最新資訊28at.com
venson,攜程后端高級研發經理,關注性能優化、技術架構等領域yUq28資訊網——每日最新資訊28at.com
一、引言
在全球化戰略的背景下,Trip.com作為一個面向國際市場的全球OTA平臺,正努力推進國際化戰略部署。Trip.com火車票正在積極投入資源和技術力量來拓展海外業務,通過將應用、數據部署新加坡、法蘭克福等中心,從而給全球用戶帶來更好的購票體驗和減少數據合規帶來的風險。yUq28資訊網——每日最新資訊28at.com
二、業務背景
目前Trip.com火車票全球鐵路業務主要集中在英國、亞洲和歐洲各國,其中歐洲作為世界上經濟、交通非常發達的大洲,也成為更加關注的一站,未來還有更多更大的舞臺。yUq28資訊網——每日最新資訊28at.com
隨著全球疫情危機消退,旅游和出行需求得到釋放,在多語言,多幣種的場景支持下Trip.com火車票的全球化業務局面已逐步形成。yUq28資訊網——每日最新資訊28at.com
三、面臨的挑戰
全球化背景下,除了要考慮全球的平滑部署來滿足應用可用性和用戶訪問性能要求外,還需要考慮數據出海的安全性、法律合規和數據隔離等嚴格要求。通過以下幾個角度舉例:yUq28資訊網——每日最新資訊28at.com
3.1 全球部署yUq28資訊網——每日最新資訊28at.com
改造前,Trip火車票業務應用和數據都部署在原機房的同城:存在IDC A+B兩中心的(同一個邏輯機房)同城雙活。yUq28資訊網——每日最新資訊28at.com
與改造前架構特點相對比,如表格所示:yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
| 容災級別yUq28資訊網——每日最新資訊28at.com | 同一邏輯分區yUq28資訊網——每日最新資訊28at.com | 用戶分區yUq28資訊網——每日最新資訊28at.com | 就近訪問yUq28資訊網——每日最新資訊28at.com | 數據多活yUq28資訊網——每日最新資訊28at.com | 公共訪問yUq28資訊網——每日最新資訊28at.com |
改造前(同城雙活)yUq28資訊網——每日最新資訊28at.com | 跨機房級別yUq28資訊網——每日最新資訊28at.com | 是yUq28資訊網——每日最新資訊28at.com | 否yUq28資訊網——每日最新資訊28at.com | 否yUq28資訊網——每日最新資訊28at.com | 否yUq28資訊網——每日最新資訊28at.com | 支持完善,成熟yUq28資訊網——每日最新資訊28at.com |
全球多中心yUq28資訊網——每日最新資訊28at.com | region級別yUq28資訊網——每日最新資訊28at.com | 否yUq28資訊網——每日最新資訊28at.com | 是,單元化分區yUq28資訊網——每日最新資訊28at.com | 是yUq28資訊網——每日最新資訊28at.com | 需嚴格遵守數據跨境政策yUq28資訊網——每日最新資訊28at.com | 需支持多IDC場景yUq28資訊網——每日最新資訊28at.com |
由此得知,多IDC場景下不可避免地需要去面臨數據分片、單元化、數據沖突和業務冪等問題。相比傳統分布式架構,不止是業務應用項目,還有PaaS平臺基礎設施在應對全球化技術體系都遇到了全新的挑戰,需要有巨大的調整。yUq28資訊網——每日最新資訊28at.com
3.2 性能問題yUq28資訊網——每日最新資訊28at.com
面對全球范圍內的用戶的業務請求響應,難免會有用戶因為網絡跨洋傳輸、鏈路傳輸距離過長等問題造成的業務訪問質量差。如何保證用戶的請求訪問鏈路最優,減少網絡延遲,提供更快服務響應。yUq28資訊網——每日最新資訊28at.com
3.3 數據合規和監管yUq28資訊網——每日最新資訊28at.com
如何嚴格遵守不同地區針對數據跨境流動、數據泄露等數據安全問題頒布的相關法律法規。yUq28資訊網——每日最新資訊28at.com
3.4 數據出海問題yUq28資訊網——每日最新資訊28at.com
- 數據一致性:多IDC讀寫場景下,全球范圍內用戶在多個數據中心創建和操作訂單,多個數據中心之間相互同步和操作訂單業務時,應該如何保證數據一致性的問題。
- 同步合規:因數據跨境政策影響,一般不進行異地多活,需要如何避免數據跨境流動所帶來的違規。
3.5 全球擴展性yUq28資訊網——每日最新資訊28at.com
以輕松地擴大業務覆蓋范圍為目標,新業務擴展時,如何通過對業務和數據進行改造操作,達到便捷動態調整數據存儲策略,來應對動態多變的的數據合規政策。yUq28資訊網——每日最新資訊28at.com
下面將結合全球化面臨的挑戰和問題,從海外部署、數據合規、架構改造實踐等角度來詳細說明Trip火車票全球化出海的架構演進實踐。yUq28資訊網——每日最新資訊28at.com
四、出海架構演進實踐
4.1 Region(可用區)選擇yUq28資訊網——每日最新資訊28at.com
選擇適合的Region需要考慮用戶需求、法律和隱私、基礎設施和網絡、數據跨境風險評估以及成本和效益等多個因素。yUq28資訊網——每日最新資訊28at.com
Trip火車票根據以上因素和自身業務需求發展方向綜合考慮,并進行詳細的市場調研和分析,做出可用區選擇:把新加坡(SIN)和法蘭克福(FRA)作為火車業務出海部署的數據中心。yUq28資訊網——每日最新資訊28at.com
4.2 網絡接入層yUq28資訊網——每日最新資訊28at.com
Trip火車票如何設置網絡路由以實現可靠、高效的路由訪問和數據傳輸,總共分三種場景。yUq28資訊網——每日最新資訊28at.com
- 外網:多路徑、就近訪問。
考慮到不同地域之間的網絡延遲和帶寬限制,Trip火車票采用就近訪問路由策略。即選擇距離最近或帶寬最大的路徑進行數據傳輸,以減少延遲和提高速度。優勢:保證同一用戶就近訪問網路鏈路最優的IDC。
配置FRA、SIN多條路徑進行數據傳輸,多路徑路由。這樣即使某一條路徑出現故障,數據仍然可以通過其他路徑傳輸。 - 內網:盡量訪問同Region內的資源,實現同Region業務閉環。
- 跨Region訪問場景:如果同Region內不存在需要獲取的業務資源,必須跨Region訪問時,則進行鏈路優化。比如,歐洲用戶訪問FRA通過專線鏈路請求SIN資源。這樣避免直接跨洋訪問其他Region,因網絡跨洋傳輸、鏈路質量不穩定等問題導致網絡耗時過長。
4.3 數據層yUq28資訊網——每日最新資訊28at.com
1)數據出海合規改造yUq28資訊網——每日最新資訊28at.com
數據出海合規改造是一項復雜而重要的任務,需要綜合考慮各種法律、法規和業務需求。通過以下改造措施,可以確保跨境數據傳輸和處理過程的合規性,并為用戶提供更可靠的數據保護:yUq28資訊網——每日最新資訊28at.com
- 數據分類和標記:對業務數據進行分類和標記,明確標識出敏感數據、個人身份信息等受保護的數據。這有助于在數據傳輸和處理過程中更好地掌握敏感數據的位置和處理方式。
- 數據加密和匿名化:采用適當的加密技術和數據匿名化方法,對敏感數據進行保護。加密可以有效防止數據在傳輸和儲存過程中被未經授權的訪問者獲取,而數據匿名化則可以保護個人身份信息的隱私。
- 出海數據業務剝離改造:數據跨境流動許多國家實施數據本地化策略,數據出海時需同時考慮數據輸出地和輸入地的數據跨境規則。跨境數據傳輸時需要進行風險識別和相關的數據控制措施,對業務數據進行剝離改造。
2)DB多IDC部署yUq28資訊網——每日最新資訊28at.com
為確保能夠滿足業務需求,并提高數據庫的可用性和容錯能力,將出海DB進行多IDC部署方案。如下圖所示:yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
需要注意的是,各IDC之間同步時,應考慮各國家和地區的法律法規要求,確保同步數據的鏈路符合當地的數據存儲和隱私保護規定。yUq28資訊網——每日最新資訊28at.com
此外,多個DB數據相互同步時,架構會變得非常復雜。為確保各個IDC之間的網絡延遲低、數據同步穩定,要關注每條同步鏈路的延遲、網絡鏈路抖動和數據一致性問題,并且要定期進行監控、測試和演練,以驗證整個部署方案的可靠性和有效性。yUq28資訊網——每日最新資訊28at.com
3)同步延遲監控yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
如上圖所示,例如同步鏈路DRC同步延遲時間:yUq28資訊網——每日最新資訊28at.com
SIN<—>FRA:160ms+yUq28資訊網——每日最新資訊28at.com
4)數據庫多IDC擴展性yUq28資訊網——每日最新資訊28at.com
引入RegionCode:插入用戶數據時增加記錄機房標識RegionCode。yUq28資訊網——每日最新資訊28at.com
根據RegionCode確定數據所在Region,使得常用的數據查詢或業務處理操作可以在單個節點上執行,以達到數據單元化處理和數據合規策略動態調整的效果,從而避免跨節點帶來額外性能消耗和數據跨境合規問題。yUq28資訊網——每日最新資訊28at.com
4.4 基礎組件層yUq28資訊網——每日最新資訊28at.com
1)PaaS基礎組件多IDC接入yUq28資訊網——每日最新資訊28at.com
a. 分布式配置中心:yUq28資訊網——每日最新資訊28at.com
應用多IDC部署的場景下,就出現了不同IDC環境下配置文件不同的情況,此時也需要對配置中心的配置文件進行調整:接入子環境,引入多IDC配置文件,支持不同IDC不同的配置場景。yUq28資訊網——每日最新資訊28at.com
b. 分布式調度中心:yUq28資訊網——每日最新資訊28at.com
因為業務中大部分JOB都是通過掃表來對數據進行批量處理,所以多IDC場景下則基于存儲的RegionCode將任務分散到多個IDC,數據經過單元化過濾后,進行分片處理。yUq28資訊網——每日最新資訊28at.com
c. Redis:yUq28資訊網——每日最新資訊28at.com
不做雙向同步,多數據源。yUq28資訊網——每日最新資訊28at.com
業務中用到Redis的場景比較多,但Redis不同于業務數據庫場景所以不做雙向同步,每個IDC對應同單元內的Redis集群,每個Redis集群只服務于當前單元內的業務,所以不是全量的。所以在多IDC的場景下就有很多業務場景需要調整,基于Redis覆蓋業務要保證單元內閉環。yUq28資訊網——每日最新資訊28at.com
2)消息中心多IDC改造yUq28資訊網——每日最新資訊28at.com
MQ每個集群都是相互獨立相互隔離的,多IDC場景下就必然面臨了消息處理冪等的問題,所以對MQ進行了邏輯分組改造:yUq28資訊網——每日最新資訊28at.com
- 同Region內處理:同機房內的生產消費的MQ同Region內閉環處理
- 跨Region場景:需要跨Region的MQ通過BaseSubject同步到中心機房Region,來保證正常業務流程
- 消費端冪等處理:消費端根據RegionCode邏輯分組,進行單元化消費
消息處理的改造流程圖如下圖所示:yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
4.5 項目業務層yUq28資訊網——每日最新資訊28at.com
1)業務單元化閉環改造yUq28資訊網——每日最新資訊28at.com
按照不同區域進行用戶分區和每個單元內可以獨立運作的原則。對項目業務進行改造,業務上盡可能保證所有業務在單元內可以獨立完成,每個IDC可以獨立承擔部分用戶的業務處理的能力。yUq28資訊網——每日最新資訊28at.com
2)請求鏈路改造yUq28資訊網——每日最新資訊28at.com
盡可能保證在同Region執行,減少跨洋請求造成的網絡耗時過長等問題。yUq28資訊網——每日最新資訊28at.com
3)跨Region場景改造yUq28資訊網——每日最新資訊28at.com
- 跨Region耗時請求下,由原來的串行調用外部接口的業務處理邏輯調整為異步并發處理和數據預加載優化。比如獲取用戶優惠券場景下,需要跨Region獲取,則采取提前請求優惠券的方式,去除掉跨Region的影響。
- 多次跨Region的場景通過接口改造減少跨Region的次數從而達到減少跨洋的效果。
- 當核心業務中的非核心跨Region業務時:采用非即時性處理原則,通過業務拆分對非核心業務進行異步MQ改造處理。
4.6 改造中的問題,演進中的思考點yUq28資訊網——每日最新資訊28at.com
在實際項目改造過程中,困難也屬于改造過程中的一部分。關鍵是要擁有一個積極應對和解決問題的心態,通過分析問題、制定解決方案、執行和學習經驗,從而克服困難并推動項目改造的順利進行。yUq28資訊網——每日最新資訊28at.com
以下是改造過程中遇到的問題點以及解決方案yUq28資訊網——每日最新資訊28at.com
1)DB同步沖突問題yUq28資訊網——每日最新資訊28at.com
在生產環境數據同步開啟后,突發了網絡不穩定造成DRC同步鏈路阻塞情況yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
如圖所示,在監控到DRC同步鏈路不穩定時,觸發了DRC同步沖突告警。yUq28資訊網——每日最新資訊28at.com
- 原因:通過對DB數據的排查發現SIN和FRA對同一訂單進行的更新操作,因為網絡延遲導致同步時發生了DRC沖突,導致其中一個更新操作被丟棄,從而影響到了后續訂單流程。
- 解決方案:修改訂單更新邏輯在同IDC內執行。雙寫發生同步延遲問題必然會遇到一致性沖突問題,長期方案還是單元化,避免出現跨Region操作同一條數據的情況。
2)分布式鎖問題yUq28資訊網——每日最新資訊28at.com
當前項目中的分布式鎖是基于Redis實現的,因為不同IDC的Redis集群是相互隔離的,所以目前分布式鎖的粒度只支持到了Region級別。目前業務都是圍繞用戶場景加的分布式鎖,所以也可以滿足目前的實際業務場景。如果后續有全局獲取分布式鎖的業務,則需要進一步設計,即保證同一時間所有Region有且只有一個地方能夠獲得該資源,并且其他Region必須等待,這有可能犧牲掉相當大的性能來實現此功能。yUq28資訊網——每日最新資訊28at.com
3)多機房庫存問題yUq28資訊網——每日最新資訊28at.com
用戶的請求保證在同一機房內完成閉環,但部分場景并不適合劃分單元化,比如多機房庫存扣減問題。面對多機房庫存扣減問題目前的策略如下:yUq28資訊網——每日最新資訊28at.com
- 業務扣庫存邏輯不調整,還是同步扣庫存,但事先根據流量分配好每個機房庫存
- 增加庫存調配機制,當庫存不足時觸發庫存調配,從有多余庫存的機房進行調配,
- 增加監控和庫存不足告警通知,除了自動資源調配,對活動上線后進行機房間的庫存情況實時觀測和實時手動調配。
4.7 演進結果yUq28資訊網——每日最新資訊28at.com
通過以上的改造和優化,Trip.com火車票的系統架構演進和性能優化如下面所示:yUq28資訊網——每日最新資訊28at.com
1)架構演進圖yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
2)性能優化yUq28資訊網——每日最新資訊28at.com
yUq28資訊網——每日最新資訊28at.com
通過對用戶網絡鏈路優化,減少用戶跨洋訪問。FRA接口耗時優化整體減少300-800ms。yUq28資訊網——每日最新資訊28at.com
五、新起點,新征程
當前背景下還有很多不完善的地方和非常多的技術挑戰,架構體系還需要持續演進迭代,接下來Trip.com火車票對于未來的全球化戰略方向還需進一步進行優化和改造:yUq28資訊網——每日最新資訊28at.com
5.1 單元化路由yUq28資訊網——每日最新資訊28at.com
接入集團UCS(unit control service)路由策略:根據用戶的區域信息作為ShardingKey映射指定IDC,以達到流量和組件多IDC場景下的完美落地。yUq28資訊網——每日最新資訊28at.com
5.2 數據單元化改造yUq28資訊網——每日最新資訊28at.com
當前第一指標是優先保證業務,各個Region的DB數據都會雙向同步,每個Region的數據都是全量,也增加容錯性,減少了數據出海異常情況時帶來的業務中斷的風險。但還需達到數據和業務單元內可以完全閉環的程度,可以隨時切斷同步鏈路避免數據跨境帶來的違規問題,以實現數據單元化。 yUq28資訊網——每日最新資訊28at.com
5.3 業務中心機房調整yUq28資訊網——每日最新資訊28at.com
為了適應多變的數據合規政策和迎合業務發展趨勢,未來的中心機房設置為SIN數據中心,并且有能力移除原業務中心機房。yUq28資訊網——每日最新資訊28at.com
目前需要達到所有業務可以在海外閉環的能力后設置業務中心為SIN,以達到海外合規建站的能力。yUq28資訊網——每日最新資訊28at.com
5.4 結語yUq28資訊網——每日最新資訊28at.com
伴隨著Trip.com全球化的發展,火車票的技術發展也逐漸從原有的技術領域,延伸到要去應對更復雜的場景。想要建立起完善的全球化體系還有很長的路要走。在這種背景下,還需繼續突破自身技術邊界,實現單維能力向多維能力的轉變,提前布局,并面向業務持續交付技術價值。yUq28資訊網——每日最新資訊28at.com
本文鏈接:http://www.tebozhan.com/showinfo-26-10456-0.html攜程火車票出海架構演進之路
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 使用 R 語言構建一個可交互的 Web 應用
下一篇: 2023 年前端 UI 組件庫概述,百花齊放!2023 年前端 UI 組件庫概述,百花齊放!