分布式系統(tǒng)進階二十三之流量網(wǎng)關(guān)和業(yè)務(wù)網(wǎng)關(guān)設(shè)計
前言
由于項目在開發(fā)初期為了趕進度,快速上線,沒有很好的規(guī)劃和設(shè)計,導致現(xiàn)在隨著需求的變化和功能的擴展,代碼逐漸變得非常復雜和難以維護。為了保持代碼的質(zhì)量和可讀性,我們需要進行代碼重構(gòu)。代碼重構(gòu)是一種對現(xiàn)有代碼進行重新組織和優(yōu)化的過程,旨在提高代碼的質(zhì)量和可讀性,同時不改變其功能。代碼重構(gòu)的目標是使代碼更加清晰、易于理解和維護,以便在未來的開發(fā)中更加高效地進行修改和擴展。
這里重構(gòu)我們采用了通用的微服務(wù)架構(gòu)模型,如圖:
架構(gòu)思考
在項目開發(fā)中,通常我們由一個域名綁定一個或多個ip,服務(wù)到我們系統(tǒng)部署的門戶網(wǎng)關(guān)[流量網(wǎng)關(guān)],這類型的網(wǎng)關(guān)負責對整個服務(wù)集群的負載均衡功能和統(tǒng)一入口,畢竟再復雜的系統(tǒng)對用戶來說應(yīng)該都只有一個統(tǒng)一訪問路徑,這樣的統(tǒng)一訪問路徑通常對用戶來說是一個域名。對于一個域名而言它的功能就是映射到某個ip,而這個ip再轉(zhuǎn)發(fā)給我們的內(nèi)部服務(wù)。
系統(tǒng)重構(gòu)
依據(jù)上面的架構(gòu)思考和公司的主要業(yè)務(wù)線,我們把系統(tǒng)拆分為三大塊,閱讀應(yīng)用,短視頻應(yīng)用和交易應(yīng)用,架構(gòu)如圖:
閱讀應(yīng)用,短視頻應(yīng)用和交易應(yīng)用 差距很大,所以比較合適的方案就是獨立部署,開發(fā)各自的業(yè)務(wù)網(wǎng)關(guān) 和 聚合服務(wù),比如:今日頭條,抖音,抖音商城也是采用獨立部署的。
流量網(wǎng)關(guān)
流量網(wǎng)關(guān),顧名思義就是控制流量進入集群的網(wǎng)關(guān),有很多工作需要在這一步做,對于一個服務(wù)集群,勢必有很多非法的請求或者無效的請求,這時候要將請求拒之門外,降低集群的流量壓力。
定義全局性的、跟具體的后端業(yè)務(wù)應(yīng)用和服務(wù)完全無關(guān)的策略網(wǎng)關(guān)就是上圖所示的架構(gòu)模型——流量網(wǎng)關(guān)。流量網(wǎng)關(guān)通常只專注于全局的Api管理策略,比如全局流量監(jiān)控、日志記錄、全局限流、黑白名單控制、接入請求到業(yè)務(wù)系統(tǒng)的負載均衡等,有點類似防火墻。這里我們采用 Nginx 做流量網(wǎng)關(guān)。
業(yè)務(wù)網(wǎng)關(guān)
當一個單體應(yīng)用被拆分成許許多多的微服務(wù)應(yīng)用后,也帶來了一些問題。一些與業(yè)務(wù)非強相關(guān)的功能,比如權(quán)限控制、日志輸出、數(shù)據(jù)加密、熔斷限流等,每個微服務(wù)應(yīng)用都需要,因此存在著大量重復的代碼實現(xiàn)。而且由于系統(tǒng)的迭代、人員的更替,各個微服務(wù)中這些功能的實現(xiàn)細節(jié)出現(xiàn)了較大的差異,導致維護成本變高。另一方面,原先單體應(yīng)用下非常容易做的接口管理,在服務(wù)拆分后沒有了一個集中管理的地方,無法統(tǒng)計已存在哪些接口、接口定義是什么、運行狀態(tài)如何。
網(wǎng)關(guān)就是為了解決上述問題。作為微服務(wù)體系中的核心基礎(chǔ)設(shè)施,一般需要具備接口管理、協(xié)議適配、熔斷限流、安全防護等功能,各種開源的網(wǎng)關(guān)產(chǎn)品(比如 Spring Cloud Gateway)都提供了優(yōu)秀高可擴展性的架構(gòu)、可以很方便的實現(xiàn)我們需要的一些功能、比如鑒權(quán)、日志監(jiān)控、熔斷限流等。
什么是BFF?
BFF:Backends For Frontends(服務(wù)于前端的后端)。
BFF是一種Web架構(gòu),微服務(wù)設(shè)計系列叢書的作者 Sam Newman曾在他的博客中寫了一篇相關(guān)文章《Pattern: Backends For Frontends》。
BFF(?Backends For Frontends)?設(shè)計是一種Web架構(gòu),?旨在通過為前端應(yīng)用程序提供單獨的API網(wǎng)關(guān)來優(yōu)化用戶體驗和性能。?
BFF架構(gòu)設(shè)計的核心思想是為前端應(yīng)用程序提供一個專門的API網(wǎng)關(guān),?該網(wǎng)關(guān)專門服務(wù)于前端,?處理路由、?聚合操作等,?從而使前端應(yīng)用程序能夠更加專注于用戶體驗和交互邏輯。?這種架構(gòu)模式有助于提高性能和用戶體驗,?降低前后端的耦合度,?簡化前端開發(fā),?并提高系統(tǒng)的安全性。?BFF適用于各種規(guī)模的應(yīng)用程序,?尤其適用于需要處理大量用戶請求、?提供高性能和高可用性的場景。?
招商銀行申請業(yè)務(wù)網(wǎng)關(guān)部署專利,實現(xiàn)適配不同的外部系統(tǒng)
金融界2023年12月14日消息,據(jù)國家知識產(chǎn)權(quán)局公告,招商銀行股份有限公司申請一項名為“業(yè)務(wù)網(wǎng)關(guān)部署方法、裝置、設(shè)備及存儲介質(zhì)“,公開號CN117221114A,申請日期為2023年9月。
專利摘要顯示,本發(fā)明公開了一種業(yè)務(wù)網(wǎng)關(guān)部署方法、裝置、設(shè)備及存儲介質(zhì),屬于智能網(wǎng)關(guān)技術(shù)領(lǐng)域。本發(fā)明通過獲取服務(wù)器配置信息和業(yè)務(wù)自定義配置信息;根據(jù)所述業(yè)務(wù)自定義配置信息組裝目標攔截器;根據(jù)所述服務(wù)器配置信息和所述目標攔截器部署并啟動通用網(wǎng)關(guān)服務(wù)器,所述通用網(wǎng)關(guān)服務(wù)器包括請求轉(zhuǎn)發(fā)服務(wù)器和本地服務(wù)器;接收外部系統(tǒng)的業(yè)務(wù)請求,并將所述業(yè)務(wù)請求進行處理后轉(zhuǎn)發(fā)到業(yè)務(wù)系統(tǒng)。通過這種方式,實現(xiàn)了建立目標攔截器,并且根據(jù)業(yè)務(wù)自定義的配置信息進行通用網(wǎng)關(guān)的服務(wù)器部署,從而可以適配不同的外部系統(tǒng),新的業(yè)務(wù)系統(tǒng)接入通用網(wǎng)關(guān)無需二次開發(fā),只需要增加路由配置即可,在接收到外部系統(tǒng)的業(yè)務(wù)請求時直接進行處理和轉(zhuǎn)發(fā)。
本文源自金融界
相關(guān)問答
中國移動智慧家庭 網(wǎng)關(guān) 入口?在用戶手機上安裝“和家親APP”,登錄后進行設(shè)置。1、和家親app是中國移動推出的一款基于智能家庭網(wǎng)關(guān)的配套軟件,通過連接家中智能家電,實現(xiàn)家庭生活數(shù)字化智...
在股票交易中,銀行轉(zhuǎn)證券中提示 網(wǎng)關(guān)業(yè)務(wù) 提示產(chǎn)品處...- 匯財...[回答]第一種情況可能是你在非交易日轉(zhuǎn)賬第二種情況是銀行轉(zhuǎn)證券賬戶要次日生效你需要到開戶的證券公司去處理下股票交易密碼鎖定了沒有關(guān)系,到第二天會...
怎么通俗地理解這句話,流量 網(wǎng)關(guān) 負責南北向流量調(diào)度及安全防...微服務(wù)網(wǎng)關(guān)(如SpringCloudGateway)是指與業(yè)務(wù)緊耦合的、提供單個業(yè)務(wù)域級別的策略,如服務(wù)治理、身份認證,權(quán)限控制、日志輸出、數(shù)據(jù)加密、熔斷限流等等。...
什么叫 網(wǎng)關(guān) ,有什么作用?-ZOL問答網(wǎng)關(guān)簡單來說就是你局域網(wǎng)的出口。你要去廣域網(wǎng)必須經(jīng)過的一個點就是網(wǎng)關(guān)了。有用(0)回復這問題看起來挺復雜的!首先,看一下是不是按了待機鍵之類的按鍵。...
端口和 網(wǎng)關(guān) 到底有什么區(qū)別?RestCloudAPI網(wǎng)關(guān)RestCloudAPI網(wǎng)關(guān)作為微服務(wù)架構(gòu)或者前后端分離的業(yè)務(wù)系統(tǒng)架構(gòu)中的重要組件承擔著非常重要的數(shù)據(jù)輸入輸出工作,同時網(wǎng)關(guān)的靈活性也決定了整...
天翼 網(wǎng)關(guān) 怎么設(shè)置寬帶?天翼寬帶可以在家中使用無線WiFi,方法很簡單,登錄天翼網(wǎng)關(guān)的后臺192.168.1.1用戶名和密碼在你的路由器背部的產(chǎn)品標貼上,登錄后,點擊WIFI-里面開啟WIFI開關(guān)-...
在VLAN中怎么劃分和設(shè)置各個 網(wǎng)關(guān) -ZOL問答設(shè)置網(wǎng)關(guān)就是給你所劃入VLAN的端口分配IP地址switch(config)interfacef0/2switch(config)ipaddress192.168.1.5255.255.0...
移動和家親綁定 網(wǎng)關(guān) 是什么,有什么用嗎?在用戶手機上安裝“和家親APP”,登錄后進行設(shè)置。1、和家親app是中國移動推出的一款基于智能家庭網(wǎng)關(guān)的配套軟件,通過連接家中智能家電,實現(xiàn)家庭生活數(shù)字化智...
網(wǎng)關(guān) 支付不支持該銀行什么意思- 匯財吧專業(yè)問答test[回答]根據(jù)支付網(wǎng)關(guān)的建設(shè)主體不同,網(wǎng)上支付模式分為1、銀行支付網(wǎng)關(guān)模式指客戶或商家將支付指令經(jīng)由銀行的支付網(wǎng)關(guān)傳送到銀行后臺業(yè)務(wù)處理系統(tǒng)來完成支...
第三方支付代理,具體做什么 業(yè)務(wù) ?第三方支付的業(yè)務(wù)涉及比較廣,有銀行卡收單(線下)、銀行卡在線支付(線上)、預付卡等,這是三大業(yè)務(wù);第三方支付代理業(yè)務(wù),一般指線上和線下業(yè)務(wù),預付卡比...第...
