在微服務(wù)架構(gòu)下,網(wǎng)關(guān)的本質(zhì),其實就是對請求進(jìn)行路由轉(zhuǎn)發(fā),在此基礎(chǔ)上我們可以根據(jù)網(wǎng)關(guān)在整個微服務(wù)架構(gòu)中的特殊位置,對請求進(jìn)行前置和后置的處理。
成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,做網(wǎng)站、網(wǎng)站制作,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。請求轉(zhuǎn)發(fā)和路由:網(wǎng)關(guān)類似于一個門面,微服務(wù)的組織細(xì)節(jié)對外界來說是不可知的,網(wǎng)關(guān)作為統(tǒng)一的接口提供方,將部分微服務(wù)系統(tǒng)的能力提供給客戶端
請求過濾和控制:主要包含鑒權(quán)、限流、參數(shù)統(tǒng)一加密解密等
常見的開源網(wǎng)關(guān)方案有:Zuul、GateWay
Zuul:Netflix公司開源的一款為服務(wù)網(wǎng)關(guān),主要功能是實現(xiàn)請求的轉(zhuǎn)發(fā)和過濾控制。它定義了4種過濾器:Pre Filters、Routing Filters、Post Filters和Error Filters。
當(dāng)請求進(jìn)來時,先經(jīng)過前置過濾器Pre Filters,所以這個過濾器常用作權(quán)限校驗、參數(shù)解密和限流操作,此時如果發(fā)生錯誤,則會調(diào)用錯誤過濾器Error Filters;
當(dāng)請求通過Pre Filters后,通過路由過濾器Routing Filters,將請求轉(zhuǎn)發(fā)到不同的微服務(wù)進(jìn)行處理,如果在執(zhí)行過濾器邏輯過程中,或在調(diào)用微服務(wù)處理期間發(fā)生錯誤,則會調(diào)用錯誤過濾器Error Filters;
當(dāng)請求經(jīng)微服務(wù)正常處理之后,則調(diào)用后置過濾器Post Filters,后置過濾器一般會用作一些數(shù)據(jù)統(tǒng)計和監(jiān)控,我們可以采用Prometheus的手段采集到微服務(wù)的調(diào)用時間和接口調(diào)用次數(shù)的數(shù)據(jù),統(tǒng)計得到相應(yīng)的熱點接口予以性能優(yōu)化。期間如果發(fā)生調(diào)用錯誤,也會調(diào)用錯誤過濾器Error Filters;
GateWay:是Spring官網(wǎng)團(tuán)隊研發(fā)的一款A(yù)PI網(wǎng)關(guān)。主要目的是為了取代Zuul。
Zuul存在一個問題,就是在處理一個請求的時候,Zuul內(nèi)部會專門創(chuàng)建一個線程去進(jìn)行請求的處理,并且只有當(dāng)請求完成才會釋放這個線程。這就導(dǎo)致線程在高并發(fā)場景下會被阻塞,降低系統(tǒng)的整體吞吐能力,影響服務(wù)的穩(wěn)定運(yùn)行。
看得出來Zuul初期是基于BIO模型進(jìn)行設(shè)計的。后來Netflix團(tuán)隊也意識到這個問題,但因為遲遲未能完成版本更新,所以Spring團(tuán)隊決定采用非阻塞IO的模型來開發(fā)網(wǎng)關(guān)產(chǎn)品。
GateWay是依賴于SpringBoot2.x、Spring WebFlux和Reactor等技術(shù)進(jìn)行開發(fā),不僅提供了統(tǒng)一的路由請求方式,還基于過濾鏈的方式提供了網(wǎng)關(guān)的過濾控制功能。
GateWay的基本架構(gòu)圖:
一句話描述:GateWay啟動時,內(nèi)置的Netty Server監(jiān)聽指定端口。當(dāng)客戶端的請求到達(dá)Gateway時,它將基于Predicate的匹配結(jié)果,計算得到訪問的路由Router,然后通過Router中的Filter鏈進(jìn)行請求的處理。處理的過程和Zuul的那四類Filter的處理流程大致相同,就不再贅述。
GateWay支持多種路由匹配的Predicate:
1.基于Header的路由匹配
2.基于Host的路由匹配
3.基于請求路徑的路由匹配
4.基于請求方式的路由匹配
5.基于Cookie的路由匹配
6.基于時間的路由匹配,常用于做灰度發(fā)布
如果需要更詳細(xì)信息,可以移步官網(wǎng)進(jìn)行了解
GateWay內(nèi)的過濾器分為前置過濾器和后置過濾器。它內(nèi)部內(nèi)置了很多過濾器,分類一共有兩類,即GatewayFilter和GlobalFilter。GlobalFilter的作用域是所有請求,而GatewayFilter僅會作用域單個路由或者若干個分組的路由上。
此外,如果GateWay提供的Filter不能滿足需求的話,它也提供了自定義擴(kuò)展的功能,通過自定義繼承AbstractGatewayFilterFactory或?qū)崿F(xiàn)GlobalFilter即可完成擴(kuò)展。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧