中文字幕亚洲精品乱码,青草青草久热国产精品,两性午夜福利国产一级毛片,日韩精品一区二区三区视频,久久不卡免费视频久久高清精品,人人妻人人澡人人爽不卡视频,亚洲国产一区二区精品,亚洲一区二区三区AV,中文亚洲av片在线观看,日韩性人妻诱慰无码

會員服務(wù) 登錄 注冊
×
資訊活動

領(lǐng)域化、中臺化和多Region化,攜程賬號系統(tǒng)演進(jìn)之路

發(fā)布時間:2024-05-24 來源:金屬加工

一、前言

在互聯(lián)網(wǎng)早期時代,賬號系統(tǒng)的功能非常廣泛,包括賬號管理、登錄認(rèn)證相關(guān)能力以及維護(hù)各類用戶信息,比如頭像、昵稱、積分、等級等。隨著業(yè)務(wù)的發(fā)展,每個功能逐漸分化出自己的需求和架構(gòu)側(cè)重點(diǎn),獨(dú)立出各自的領(lǐng)域服務(wù)也成了業(yè)界共識。

本文分享的賬號系統(tǒng),指的是提供用戶賬號管理、登錄認(rèn)證相關(guān)能力的系統(tǒng)。介紹了攜程在不斷發(fā)展的過程中,賬號系統(tǒng)在領(lǐng)域化、中臺化和多Region化方向上的演進(jìn)、探索和一些思考。

二、領(lǐng)域化

微服務(wù)迅猛發(fā)展階段,賬號系統(tǒng)分裂出了很多應(yīng)用。比如,專門支持三方登錄的應(yīng)用,專門保存賬號實(shí)名信息的應(yīng)用,針對不同平臺的接入應(yīng)用。一開始確實(shí)可以滿足迅速開發(fā)上線的需求,當(dāng)應(yīng)用裂變到幾十個的時候,應(yīng)用分層不合理,領(lǐng)域邏輯不內(nèi)聚帶來的問題逐漸顯現(xiàn)出來:

1)用戶請求會經(jīng)歷多個應(yīng)用之間的RPC調(diào)用,性能和穩(wěn)定性受影響。

2)操作無法原子性,易出現(xiàn)臟數(shù)據(jù)。

3)應(yīng)用過多,開發(fā)、運(yùn)維、測試范圍大,影響效率。

領(lǐng)域化是對賬號系統(tǒng)的全面重構(gòu),有以下兩個目標(biāo):

1)合理劃分領(lǐng)域,邏輯內(nèi)聚。

2)改造需要對業(yè)務(wù)透明。

2.1 全面梳理,重新劃分領(lǐng)域

圖片

圖片

賬號系統(tǒng)功能主要分為3個類型:

1)核心功能:負(fù)責(zé)管理和維護(hù)賬號系統(tǒng)的核心功能和數(shù)據(jù)。由于涉及到用戶的核心數(shù)據(jù),相關(guān)插入、變更接口只可暴露給業(yè)務(wù)BFF層。

賬號領(lǐng)域:包括賬號信息查詢;賬號注冊/注銷;手機(jī)、郵箱、三方等數(shù)據(jù)的綁定/解綁;openid的生成;密碼的管理和認(rèn)證等功能。

登錄態(tài)領(lǐng)域:負(fù)責(zé)登錄態(tài)生成、驗(yàn)證、續(xù)期、踢出、過期刪除等功能。

日志監(jiān)控領(lǐng)域:負(fù)責(zé)記錄賬號相關(guān)業(yè)務(wù)埋點(diǎn)和日志。

2)輔助功能:不僅可以被賬號相關(guān)業(yè)務(wù)依賴,也可以開放出去供類似業(yè)務(wù)場景的接入。

Token(臨時憑證)領(lǐng)域:負(fù)責(zé)Token的生成、驗(yàn)證、過期刪除等功能。

驗(yàn)證碼領(lǐng)域:負(fù)責(zé)驗(yàn)證碼生成、發(fā)送、驗(yàn)證等功能。

3)接入功能:負(fù)責(zé)賬號相關(guān)的業(yè)務(wù)功能接入,包括端上接入和內(nèi)網(wǎng)服務(wù)接入。

BFF層:主要負(fù)責(zé)各類業(yè)務(wù)邏輯的組合(注冊、登錄、改綁手機(jī)等)以及接入方權(quán)限的控制。

前端UI、SDK:前端顯示UI以及提供出去供業(yè)務(wù)接入的SDK。直接對接BFF層。

其他一些業(yè)務(wù)中必須依賴的模塊,如風(fēng)控模塊,依賴公司相應(yīng)團(tuán)隊(duì)提供的能力即可。

2.2 讀寫對比,透明改造

賬號系統(tǒng)非常核心,上游是公司的各類業(yè)務(wù),依賴方非常多,牽一發(fā)而動全身。同時,業(yè)務(wù)也在急速發(fā)展,不會停下來等待系統(tǒng)的改造。對賬號系統(tǒng)的改造無疑是在快速開動的汽車上更換輪胎。因此,對賬號系統(tǒng)的改造需要一套完整的比對流程,需要滿足兩個條件:

1)完整性。比對需要覆蓋100%的場景,避免場景遺漏。

2)隔離性。比對需要在離線集群和存儲上進(jìn)行,避免對在線系統(tǒng)造成影響。同時,需要屏蔽掉離線集群不必要的對外請求,以免對下游造成影響(包括RPC調(diào)用,消息,監(jiān)控?cái)?shù)據(jù)等)。

在此基礎(chǔ)上,完成了賬號系統(tǒng)的讀寫比對流程:

讀對比:轉(zhuǎn)發(fā)-比對。利用鏡像流量的能力,將鏡像流量導(dǎo)入離線Old代碼集群。Old代碼集群在處理流量的同時,會轉(zhuǎn)發(fā)到離線New代碼集群,完成接口返回?cái)?shù)據(jù)比對。

寫比對:錄制-回放-比對。提前錄制生產(chǎn)環(huán)境的流量,記錄輸入、輸出和發(fā)出的消息等數(shù)據(jù);分別部署New/Old代碼離線集群和兩套相同的離線DB(里面數(shù)據(jù)為同一時間點(diǎn)的Snapshot);將錄制好的流量(DB Snapshot時間點(diǎn)后)回放到兩套集群上,比對輸出、存儲、發(fā)出來的消息等數(shù)據(jù),確保New/Old集群和錄制的結(jié)果三方一致。

完成了領(lǐng)域化改造后,核心數(shù)據(jù)的變更沉淀到對應(yīng)的領(lǐng)域服務(wù)中,相關(guān)操作可以滿足原子性,避免臟數(shù)據(jù)的產(chǎn)生;應(yīng)用減少以及引入BFF層,減少了應(yīng)用間,用戶端和服務(wù)端的交互次數(shù),提升了系統(tǒng)穩(wěn)定性,提升了開發(fā)、運(yùn)維、測試的效率。

三、中臺化

和大部分互聯(lián)網(wǎng)公司一樣,隨著集團(tuán)的發(fā)展,會出現(xiàn)不同的品牌,需要一套獨(dú)立的賬號體系。也有業(yè)務(wù)團(tuán)隊(duì)會將自己研發(fā)的賬號系統(tǒng)交給賬號團(tuán)隊(duì)統(tǒng)一管理。如果賬號系統(tǒng)沒有做好中臺化的準(zhǔn)備,勢必會在接入的過程中手忙腳亂。不僅代碼中會存在大量的判斷邏輯,接入時間也會很長,甚至可能無法滿足業(yè)務(wù)的需求。中臺化的改造需要考慮以下三點(diǎn):

1)降低改造復(fù)雜度

減少系統(tǒng)的架構(gòu)改造復(fù)雜度

降低業(yè)務(wù)接入的復(fù)雜度

2)配置化

將需求抽象為功能,減少對業(yè)務(wù)需求的定制化開發(fā)

簡單配置即可快速接入

3)提供多樣化的接入方式,以滿足不同業(yè)務(wù)方的接入需求

3.1 降低改造復(fù)雜度

中臺化改造過程中,賬號體系ID是最核心的概念。

標(biāo)志著賬號所屬的業(yè)務(wù)體系,相互之間隔離

控制賬號體系的策略和權(quán)限

路由每一個賬號體系對應(yīng)的存儲

因此,對于賬號相關(guān)查詢請求,如果不知道賬號所在的體系ID,就無法找到對應(yīng)的存儲。要么進(jìn)行全存儲查詢,要么需要一個大表存儲UID到體系ID的映射關(guān)系,這會引入額外的依賴,提高成本的同時,也會使得系統(tǒng)變得復(fù)雜。

另外,要求所有上游新增一個參數(shù)需花費(fèi)大量的資源推動。

UID全局唯一,并且通過編碼區(qū)分不同的體系ID,可以大大降低改造和接入的復(fù)雜度。

新接入的賬號體系,通過UID的編碼可以快速判斷賬號體系ID。

對于存量UID,默認(rèn)屬于最早的賬號體系。

同時,UID全局唯一也可以提高排障和TS時的效率(不用反復(fù)確認(rèn)某一個UID屬于哪個賬號體系)。

當(dāng)然,一些不通過UID進(jìn)行的查詢接口,如通過手機(jī)號查詢賬號的場景,還是需要業(yè)務(wù)方傳遞體系ID,但通過這樣的設(shè)計(jì)已極大的縮小了需要改造的范圍。

3.2 配置化

賬號中臺化后主要提供以下能力:

1)賬號管理:管理賬號的完整生命周期,包括注冊,驗(yàn)證,注銷。支持賬號綁定手機(jī)號,郵箱,第三方賬號,以及對應(yīng)屬性的變更、解綁操作。管理賬號密碼,支持多種加密邏輯。管理Oauth相關(guān)數(shù)據(jù)。

2)多樣化登錄方式:包括賬號密碼登錄,手機(jī)驗(yàn)證碼登錄,手機(jī)一鍵登錄,掃碼登錄,社交賬號登錄等登錄方式。特別的,在社交賬號登錄方式中,賬號系統(tǒng)已完成了與多個平臺的對接,常見的比如微信、支付寶、QQ、微博、華為等。

3)登錄態(tài)管理:包括登錄態(tài)的生成、驗(yàn)證,登錄態(tài)信息維護(hù),按需續(xù)期、踢出等功能。

4)安全&監(jiān)控體系:賬號中臺具有完善的日志體系,并已完成對接前端滑塊和后端實(shí)時風(fēng)控。

在中臺化建設(shè)的過程中,雖然已經(jīng)全量梳理了中臺應(yīng)該提供的能力,仍然會有新的需求需要支持。在接到新的需求,而現(xiàn)有的功能無法支持的時候,不要急于解決本次需求,需要思考本次需求涉及的具體功能,從而在實(shí)現(xiàn)的過程中避免定制化邏輯,沉淀為中臺的新能力。

比如,某次需求為:一個賬號體系全平臺需要保證登錄態(tài)是唯一的,即新的登錄產(chǎn)生后,會踢出之前的登錄態(tài)??梢猿橄鬄樾枰信_提供對某一個賬號體系的登錄態(tài)數(shù)量進(jìn)行控制。進(jìn)一步的,可以按照平臺(App、小程序、H5等)分別進(jìn)行控制。

中臺化建設(shè)完成后,不同的功能都可以通過配置進(jìn)行控制,也可以對每一個功能進(jìn)行細(xì)節(jié)上的調(diào)整。同一體系的配置放置在同一配置文件中,便于維護(hù)。如果沒有特別的需求,直接使用默認(rèn)配置接入即可。

3.3 多樣化接入方式

為了適應(yīng)業(yè)務(wù)多樣化的接入需求,中臺提供了3種接入方式:

1)UI接入:在攜程的主Web站點(diǎn)、App和小程序,統(tǒng)一使用中臺開發(fā)的前端界面,業(yè)務(wù)方按需拉起。

2)前端SDK接入:有少量定制需求,如顯示的LOGO需要調(diào)整,協(xié)議需要變更等,可以使用中臺的前端SDK接入。此SDK已包含所有的流程邏輯,接入時僅需替換掉對應(yīng)的元素。

3)后端對接:若業(yè)務(wù)方有過多的與業(yè)務(wù)藕合的邏輯,則不適合將邏輯放在中臺。此時,業(yè)務(wù)方可以自行開發(fā)一層BFF,利用中臺BFF層和輔助系統(tǒng)(驗(yàn)證碼、Token)提供的能力,組合出合適的業(yè)務(wù)邏輯。

中臺化改造完成后,新賬號體系需要申請接入時,僅需選擇需要的能力,中臺通過調(diào)整配置,小時級即可完成接入。大大減少了新增一套賬號體系的支持成本。

国产成人精品月日本亚洲语音| 亚洲日韩精品一区二区二三区四区| 国产美女露脸口爆吞精一区二区| 国产婷婷一区二区三区| 桃美女性感视频一区二区三区| 无码国产午夜福利片在线观看| 国产精品狼人久久久久影院| 免费人成视频在线观看| 亚洲欧美日本久久综合网站| 97久久精品无码一区二区毛片| 亚洲夜夜性夜综合久久| 国产精品99无码一区二区| a级孕妇高清免费毛片| 成人无码一区二区三区网站| 97热久久免费频精品99| 国产一区二区三区影院| 97PORM国内自拍视频| 无码人妻丰满熟妇区免费| 国产精品国产三级国产av中文| 亚洲熟妇中文字幕日产无码| 久久精品国产免费观看三人同眠| 浮力影院欧美三级日本三级| 国产一级特黄高清免费大片| 免费无遮挡无码永久视频| 中文字幕日韩人妻不卡一区| 欧美丰满熟妇XXXX| 99国产精品99久久久久久| 久久久久久精品人妻无码动漫专区| 快穿之爱爱做不停H| 亚洲永久精品免费www51zcm日韩| 欧美a级v片在线观看一区| 五月激情六月丁香欧美一二三区| 成人国产精品一级毛片| 久久精品国产99久久久古代| 亚洲精品无码专区国产乱码| 极品少妇自慰泬自慰| 99国产欧美久久久精品| 怡红院成永久免费人视频新的| 国产成人综合久久亚洲精品| 亚洲综合色成在线播放| 丁香婷婷色综合激情五月|