RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡述網(wǎng)關(guān)的作用與設(shè)計

jf_78858299 ? 來源:洞涇小靈通 ? 作者: 懷瑾握瑜 ? 2023-05-04 17:40 ? 次閱讀

網(wǎng)關(guān)的作用

1.提供統(tǒng)一的鑒權(quán)、限流、協(xié)議轉(zhuǎn)換等非業(yè)務(wù)基礎(chǔ)的能力,減少業(yè)務(wù)研發(fā)對非業(yè)務(wù)基礎(chǔ)能力的建設(shè)投入

2.提供快速配置化的接口管理部署能力,提升接口開放的研發(fā)效率

3.統(tǒng)一流量入口,有利于流量的統(tǒng)一安全管控以及基礎(chǔ)架構(gòu)升級

4.業(yè)務(wù)統(tǒng)一托管API接口,根據(jù)流量分配資源,提升資源利用率

圖片

接收網(wǎng)絡(luò)請求以及處理網(wǎng)絡(luò)情況

在高并發(fā)大流量的情況下,往往客戶端存在每秒數(shù)十萬的請求,因此服務(wù)器如何高效的接收網(wǎng)絡(luò)以及處理網(wǎng)絡(luò)請求是非常重要的一項能力。為了達(dá)到這一性能要求,我們選用epoll IO多路復(fù)用機(jī)制,IO模型采用同步非阻塞模式,即NIO模式,這樣便能使用較小的系統(tǒng)開銷處理較大的網(wǎng)絡(luò)請求

圖片

java nio

加解密與簽名

為了增加請求響應(yīng)的安全性,往往會對請求響應(yīng)進(jìn)行加解密以及參數(shù)簽名處理,以進(jìn)行驗證用戶身份,加解密的密鑰可以采用靜態(tài)或動態(tài)兩種方式,靜態(tài)時密鑰不變且統(tǒng)一,動態(tài)可以采用用戶登錄后發(fā)放,實現(xiàn)一用戶一密鑰的方式,加解密算法可采用常見的加解密算法,如RSA、AES、DES等。簽名時首先對參數(shù)進(jìn)行排序,以便客戶端與服務(wù)端驗證一致,后將排序后的參數(shù)進(jìn)行拼接,最后生成簽名串,簽名算法可采用HmacSHA256、HmacSHA1等算法

鑒權(quán)認(rèn)證

鑒權(quán)認(rèn)證是對用戶身份及操作權(quán)限的安全檢查,是安全的重要保障。網(wǎng)關(guān)鑒權(quán)類型有Basic認(rèn)證(基本認(rèn)證)、Digest認(rèn)證(摘要認(rèn)證)、JWT認(rèn)證、OAuth2認(rèn)證、自建鑒權(quán)認(rèn)證等方式

1.Basic認(rèn)證:將username和password使用冒號(:)拼起來,使用base64編碼,將編碼后的字符串放在HTTP頭Authorization中,發(fā)送給服務(wù)端

2.Digest認(rèn)證:在Basic認(rèn)證的基礎(chǔ)上,增加了:1. 請求方需要對用戶名、密碼和域進(jìn)行md5傳輸,保證不明文。2. 增加了隨機(jī)數(shù)(nonce)和 qop(quality of protection),保證md5不固定

3.JWT認(rèn)證:用戶使用用戶名和口令到認(rèn)證服務(wù)器上請求認(rèn)證。認(rèn)證服務(wù)器驗證用戶名和口令后生成JWT Token(HMAC-SHA256對稱加密),然后將 base64(header).base64(payload).signature 作為 JWT Token返回客戶端??蛻舳嗽谡埱髴?yīng)用服務(wù)器資源時,帶上JWT Token。應(yīng)用服務(wù)器將JWT Token傳給認(rèn)證服務(wù)器檢查 JWT Token,確認(rèn)簽名是正確的。認(rèn)證服務(wù)器檢查JWT Payload 和 簽名,驗證通過后,告訴應(yīng)用服務(wù)器。應(yīng)用服務(wù)認(rèn)為請求合法,返回請求的資源。

4.OAuth2認(rèn)證:OAuth2.0有兩種主要的方式:授權(quán)碼模式和憑證模式。授權(quán)碼模式是最常使用的OAuth 2.0的授權(quán)許可類型,它適用于用戶給第三方應(yīng)用授權(quán)訪問自己信息的場景。憑證模式是一個簡化版的API認(rèn)證,主要是用于認(rèn)證服務(wù)器到服務(wù)器的調(diào)用,也就是沒有用戶參與的的認(rèn)證流程。

5.客戶端請求攜帶的憑證信息(即Token)的形式是業(yè)務(wù)方自定義的格式,服務(wù)端收到請求后對Token進(jìn)行鑒權(quán)驗證,Token為登錄用戶身份后發(fā)放

訪問日志與鏈路追蹤

網(wǎng)關(guān)作為流量的入口,是追蹤用戶操作的入口,因而從網(wǎng)關(guān)打印訪問日志,建立訪問日志搜索,從訪問日志追蹤鏈路是一項對于研發(fā)提升排查問題效率的重要手段。對于鏈路追蹤的建立,業(yè)界中受到Google Dapper論文影響最大,后續(xù)隨著標(biāo)準(zhǔn)規(guī)范的發(fā)展,鏈路追蹤逐漸遵循OpenTracing的標(biāo)準(zhǔn),OpenTracing 是一個中立的(廠商無關(guān)、平臺無關(guān))分布式追蹤的 API 規(guī)范,提供了統(tǒng)一接口方便開發(fā)者在自己的服務(wù)中集成一種或者多種分布式追蹤的實現(xiàn)。

圖片

鏈路追蹤的一種呈現(xiàn)

限流

1.網(wǎng)關(guān)在超額流量下,首先要對網(wǎng)關(guān)的總請求量進(jìn)行控制,同時也要對同時處理的請求進(jìn)行線程控制,避免請求被積壓堆積造成大量的超時

2.對單個網(wǎng)關(guān)接口進(jìn)行限流,避免下游服務(wù)被超額流量沖擊壓垮

3.對用戶、ip、設(shè)備維度進(jìn)行限流,降低機(jī)器刷接口的可能

限流通常有單機(jī)限流與集群限流兩種方式,限流算法包含有固定窗口限流算法、滑動窗口限流算法、漏桶算法、令牌桶算法等。集群限流一般實現(xiàn)方式基于令牌桶算法思想,我們建立一個token server,從token server獲取令牌,達(dá)到集群限流的目的,但在限流設(shè)計時我們需考慮token server不穩(wěn)定的因素,當(dāng)token server不穩(wěn)定時,我們應(yīng)當(dāng)首先保障請求的正常,因此當(dāng)token server不穩(wěn)定時,我們需將限流從集群限流退化到單機(jī)限流的模式,以保障網(wǎng)關(guān)的穩(wěn)定可用

協(xié)議轉(zhuǎn)換與路由

隨著微服務(wù)的普及落地,內(nèi)部系統(tǒng)間采用著RPC協(xié)議進(jìn)行著通訊,外部的請求通常為HTTP協(xié)議,因此網(wǎng)關(guān)承擔(dān)著將HTTP協(xié)議轉(zhuǎn)換為內(nèi)部RPC協(xié)議的作用,網(wǎng)關(guān)需要完成的工作包括:獲取HTTP請求參數(shù)、Context本地參數(shù),拼裝后端服務(wù)參數(shù),完成HTTP協(xié)議到后端服務(wù)的協(xié)議轉(zhuǎn)換,調(diào)用后端服務(wù)獲取響應(yīng)結(jié)果并轉(zhuǎn)換為HTTP響應(yīng)結(jié)果。路由策略采用RPC路由策略即可,因此我們需要接入注冊中心這樣的應(yīng)用,緩存服務(wù)器目標(biāo)

熔斷降級

網(wǎng)關(guān)的下游服務(wù)處于隨時可能發(fā)生故障的狀態(tài),當(dāng)下游發(fā)生故障時,網(wǎng)關(guān)rpc請求耗時增加,引起請求失敗與積壓,正在請求的用戶面臨失敗的請求可能會進(jìn)行不斷的重試,造成處理量增加,請求排隊的情況,從而引起網(wǎng)關(guān)負(fù)載的上升,因此我們需要在下游發(fā)生故障時,具備熔斷降級的能力,屏蔽掉下游服務(wù)故障,避免網(wǎng)關(guān)發(fā)生負(fù)載陡升。熔斷降級限于篇幅這里也不詳細(xì)講述了,后續(xù)再詳細(xì)進(jìn)行介紹,常見的開源熔斷降級方案包含有hystrix、sentinel等

實時監(jiān)控

一個系統(tǒng)的運行情況需要建立一套實時監(jiān)控面板來進(jìn)行觀察,避免黑盒情況的運行,因此我們需要對網(wǎng)關(guān)的各種運行狀態(tài)進(jìn)行觀察,其中應(yīng)當(dāng)包括:請求量、請求耗時、請求狀態(tài)碼、正在處理的請求數(shù)、處理的請求異常量、流量、rpc轉(zhuǎn)發(fā)量、rpc異常量與分布、rpc耗時、鑒權(quán)認(rèn)證熔斷降級限流量等等

內(nèi)部調(diào)試與灰度發(fā)布

在研發(fā)過程時,往往存在著多人研發(fā)同一服務(wù)的場景,或者研發(fā)與測試共同進(jìn)行驗證到同一服務(wù)的場景,此時便產(chǎn)生了使用的沖突,導(dǎo)致研發(fā)測試效率的沖突,團(tuán)隊還經(jīng)常產(chǎn)生爭議。因此在內(nèi)部調(diào)試與測試時,我們需要支持多泳道部署的能力,不同場景使用不同的泳道,如下圖:

圖片

泳道部署運行

這樣便能支持不同人群不同的使用場景驗證,解決掉內(nèi)部調(diào)試、測試之間的沖突,提升研發(fā)效率。同樣對于線上發(fā)布時,我們需要驗證一部分人群,這時需要使用泳道的方式將部分人群灰度到新發(fā)布的集群,達(dá)到灰度發(fā)布的能力。網(wǎng)關(guān)作為鏈路中的節(jié)點,需要支持泳道的能力,常見的方案是使用上下文中攜帶染色路由tag的方式,tag在鏈路中傳遞,路由時根據(jù)tag優(yōu)先找到同一tag的服務(wù)注冊節(jié)點進(jìn)行路由選擇

管理能力

1.域管理能力。我們在面臨多業(yè)務(wù)場景時,應(yīng)當(dāng)具備多業(yè)務(wù)域場景的管理能力,因此需要支持多域的快速配置管理的能力,支持域場景的能力

2.接口配置能力。在業(yè)務(wù)場景內(nèi),需要將對外發(fā)布的接口配置在網(wǎng)關(guān)內(nèi),也需將對外接口與內(nèi)部RPC的映射關(guān)系配置在內(nèi),以便內(nèi)部路由轉(zhuǎn)發(fā)時使用

3.多環(huán)境部署能力。在研發(fā)過程中研發(fā)人員在測試環(huán)境中配置了大量的待上線接口,待到上線時我們需要將測試環(huán)境要上線的接口快速導(dǎo)入到線上環(huán)境中,而非手工重新錄入,手工重新錄入通常存在操作失誤的情況,我們要像代碼部署一樣,接口配置同樣具備持續(xù)集成能力

4.發(fā)布管控能力。任何部署上線的變動應(yīng)當(dāng)都在管控范圍內(nèi),降低隨意操作變動造成大范圍故障的風(fēng)險,其中應(yīng)當(dāng)包含發(fā)布權(quán)限控制、發(fā)布審批、灰度發(fā)布、發(fā)布時間控制等

網(wǎng)關(guān)高可用設(shè)計

1.采用集群部署隔離能力,將不同域分配在不同的集群上,避免域故障時的相互影響

2.使用請求隔離,將核心接口獨立線程池隔離處理,非核心接口必要時可快速降級

3.自身穩(wěn)定性保障手段,使用總量限流保障自身最大正常運行,熔斷降級減少下游故障對網(wǎng)關(guān)產(chǎn)生的影響

4.超時管理,對下游接口請求進(jìn)行超時管理,對超時的接口請求進(jìn)行資源釋放

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 網(wǎng)關(guān)
    +關(guān)注

    關(guān)注

    9

    文章

    4444

    瀏覽量

    51056
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1499

    瀏覽量

    61961
  • 流量
    +關(guān)注

    關(guān)注

    0

    文章

    245

    瀏覽量

    23891
收藏 人收藏

    評論

    相關(guān)推薦

    簡述你不夠了解的晶振作用

      晶振是單片機(jī)系統(tǒng)里的一個部分,全稱為晶體振蕩器。晶振結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時鐘頻率,為單片機(jī)指令的執(zhí)行提供了基礎(chǔ)。下面松季電子簡述你不夠了解的晶振作用如下:  晶振提供的時鐘
    發(fā)表于 03-11 15:10

    物聯(lián)網(wǎng)網(wǎng)關(guān)在未來的物聯(lián)網(wǎng)中有什么作用?

    物聯(lián)網(wǎng)的接入方式有哪幾種?物聯(lián)網(wǎng)網(wǎng)關(guān)具備哪幾個功能?物聯(lián)網(wǎng)網(wǎng)關(guān)在未來的物聯(lián)網(wǎng)中有什么作用?
    發(fā)表于 06-16 09:36

    modbus網(wǎng)關(guān)是有哪些功能及作用

    modbus網(wǎng)關(guān)是什么?modbus網(wǎng)關(guān)是有哪些功能?modbus網(wǎng)關(guān)作用是什么?
    發(fā)表于 09-27 07:49

    簡述功率放大器的作用

    簡述功率放大器的作用。功率放大器最主要的作用就是用來放大音量的,除了放大音量之外,還具有提高音質(zhì)的作用。
    的頭像 發(fā)表于 09-01 11:36 ?3.3w次閱讀

    簡述揚塵噪聲監(jiān)測系統(tǒng)的作用及功能

    簡述揚塵噪聲監(jiān)測系統(tǒng)的作用及功能
    發(fā)表于 10-20 17:49 ?5次下載

    協(xié)議解析網(wǎng)關(guān)作用

    想要了解協(xié)議解析網(wǎng)關(guān),我們不妨將這個詞拆來來看,協(xié)議+解析+網(wǎng)關(guān)三者的組合就是協(xié)議解析網(wǎng)關(guān),三者之間優(yōu)缺點的去蕪存菁就是協(xié)議解析網(wǎng)關(guān)作用
    的頭像 發(fā)表于 09-09 11:18 ?1430次閱讀

    物聯(lián)網(wǎng)網(wǎng)關(guān)有什么作用,如何工作?

    。物聯(lián)網(wǎng)網(wǎng)關(guān)有什么作用?物聯(lián)網(wǎng)網(wǎng)關(guān)充當(dāng)網(wǎng)絡(luò)路由器,在物聯(lián)網(wǎng)設(shè)備和云之間路由數(shù)據(jù)。早期,大多數(shù)網(wǎng)關(guān)設(shè)備只向一個方向發(fā)送流量:從物聯(lián)網(wǎng)設(shè)備到云。現(xiàn)在,網(wǎng)
    的頭像 發(fā)表于 12-28 09:24 ?2373次閱讀
    物聯(lián)網(wǎng)<b class='flag-5'>網(wǎng)關(guān)</b>有什么<b class='flag-5'>作用</b>,如何工作?

    工業(yè)智能網(wǎng)關(guān)(工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān))的功能與作用

    工業(yè)智能網(wǎng)關(guān)也叫做工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)、工業(yè)邊緣計算網(wǎng)關(guān)、工業(yè)數(shù)據(jù)采集網(wǎng)關(guān)、PLC網(wǎng)關(guān)等等。隨著工業(yè)數(shù)字化的推動,工業(yè)智能
    的頭像 發(fā)表于 06-30 17:28 ?2641次閱讀
    工業(yè)智能<b class='flag-5'>網(wǎng)關(guān)</b>(工業(yè)物聯(lián)網(wǎng)<b class='flag-5'>網(wǎng)關(guān)</b>)的功能與<b class='flag-5'>作用</b>

    什么是網(wǎng)關(guān)網(wǎng)關(guān)作用是什么?

    什么是網(wǎng)關(guān)網(wǎng)關(guān)(Gateway)又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。網(wǎng)關(guān)在傳輸層上以實現(xiàn)網(wǎng)絡(luò)互連,是最復(fù)雜的網(wǎng)絡(luò)互連設(shè)備,僅用于兩個高層協(xié)議不同的網(wǎng)絡(luò)互連。網(wǎng)關(guān)的結(jié)構(gòu)也和路由器類似,不同的是互
    的頭像 發(fā)表于 08-26 09:55 ?9739次閱讀
    什么是<b class='flag-5'>網(wǎng)關(guān)</b>,<b class='flag-5'>網(wǎng)關(guān)</b>的<b class='flag-5'>作用</b>是什么?

    電梯網(wǎng)關(guān)有什么作用

    隨著科技的不斷發(fā)展,電梯網(wǎng)關(guān)作為一種智能化設(shè)備,被廣泛應(yīng)用于電梯系統(tǒng)中。那么,電梯網(wǎng)關(guān)到底有什么作用呢? 電梯網(wǎng)關(guān)能夠?qū)崿F(xiàn)對電梯系統(tǒng)的遠(yuǎn)程監(jiān)控和管理。傳統(tǒng)的電梯系統(tǒng)只能通過人工巡檢來發(fā)
    的頭像 發(fā)表于 08-29 09:57 ?831次閱讀

    工業(yè)智能網(wǎng)關(guān)作用 工業(yè)智能網(wǎng)關(guān)的結(jié)構(gòu)組成

    工業(yè)智能網(wǎng)關(guān)是工業(yè)物聯(lián)網(wǎng)系統(tǒng)的關(guān)鍵組成部分,具有重要的作用。它能夠?qū)崿F(xiàn)連接和集成不同協(xié)議和設(shè)備類型的功能,將不同的物理設(shè)備連接到云端系統(tǒng),并提供可靠的數(shù)據(jù)傳輸和處理,從而實現(xiàn)實時監(jiān)測、數(shù)據(jù)分析、遠(yuǎn)程
    的頭像 發(fā)表于 01-31 15:39 ?710次閱讀

    邊緣計算網(wǎng)關(guān)是什么?有什么作用

    、低成本、隱私安全以及本地自治的本地計算服務(wù)。那么,邊緣計算網(wǎng)關(guān)究竟是什么呢?它又有什么作用呢?接下來,我們將進(jìn)行深度解析。 首先,讓我們來理解邊緣計算網(wǎng)關(guān)的基本定義。邊緣計算網(wǎng)關(guān),是
    的頭像 發(fā)表于 04-16 15:25 ?3768次閱讀
    邊緣計算<b class='flag-5'>網(wǎng)關(guān)</b>是什么?有什么<b class='flag-5'>作用</b>

    工業(yè)網(wǎng)關(guān)作用與功能分享

    一、引言 隨著工業(yè)4.0和物聯(lián)網(wǎng)(IoT)技術(shù)的快速發(fā)展,工業(yè)網(wǎng)關(guān)作為連接工業(yè)現(xiàn)場設(shè)備與網(wǎng)絡(luò)的重要節(jié)點,其作用與功能日益凸顯。本文將對工業(yè)網(wǎng)關(guān)作用與功能進(jìn)行詳細(xì)的闡述,以期為讀者提供
    的頭像 發(fā)表于 06-20 16:05 ?596次閱讀

    工業(yè)網(wǎng)關(guān)在工廠中的作用

    在現(xiàn)代化工廠的運營中,信息的傳遞與處理發(fā)揮著至關(guān)重要的作用。工業(yè)網(wǎng)關(guān)作為連接現(xiàn)場設(shè)備與控制系統(tǒng)的橋梁,在工廠中扮演著不可或缺的角色。本文將從多個角度詳細(xì)闡述工業(yè)網(wǎng)關(guān)在工廠中的作用,并探
    的頭像 發(fā)表于 06-24 17:09 ?466次閱讀
    工業(yè)<b class='flag-5'>網(wǎng)關(guān)</b>在工廠中的<b class='flag-5'>作用</b>

    工業(yè)智能網(wǎng)關(guān)有什么功能?工業(yè)智能網(wǎng)關(guān)的特點、作用

    工業(yè)智能網(wǎng)關(guān)的功能、特點與作用 在工業(yè)互聯(lián)網(wǎng)快速發(fā)展的背景下,工業(yè)智能網(wǎng)關(guān)(也稱為工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)、工業(yè)邊緣計算網(wǎng)關(guān)等)作為連接物理設(shè)備與云端
    的頭像 發(fā)表于 09-26 11:48 ?323次閱讀
    工業(yè)智能<b class='flag-5'>網(wǎng)關(guān)</b>有什么功能?工業(yè)智能<b class='flag-5'>網(wǎng)關(guān)</b>的特點、<b class='flag-5'>作用</b>
    RM新时代网站-首页