色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

springcloud中g(shù)ateway存在的意義是什么?

林子帆2年前17瀏覽0評論

先讓我們看這樣一個(gè)場景吧,一個(gè)電商網(wǎng)站做了服務(wù)化,后端服務(wù)分別拆成了用戶服務(wù)、商品服務(wù)、支付服務(wù)、物流服務(wù)(為了舉例,做了簡化,實(shí)際場景會遠(yuǎn)比這個(gè)復(fù)雜);前端有網(wǎng)頁版和APP,前端的所有操作都需要調(diào)用后端的各個(gè)服務(wù)。

在這個(gè)過程中,可能會有這樣的問題:

問題1.

前端應(yīng)用需要知道后端每個(gè)服務(wù)的地址,或者必須接入服務(wù)中心;但是服務(wù)的地址和端口可能會動態(tài)變化。

問題2.

每個(gè)服務(wù)的技術(shù)棧必須相同,遵守相同的接口規(guī)范,接口協(xié)議必須相同,否則對于前度極度不友好。

問題3

網(wǎng)頁版和APP展示相同的內(nèi)容時(shí),可能粒度不同,要么服務(wù)端提供粗粒度和細(xì)粒度兩種API,要么只提供一組最細(xì)粒度的API,前者增加了后端的開發(fā)量,后者可能會導(dǎo)致一次前端需要多次調(diào)用細(xì)粒度的API,才能得到想要的數(shù)據(jù)。

問題4

不同的客戶端設(shè)備展示的數(shù)據(jù)不同,比如網(wǎng)頁版能展示的數(shù)據(jù)更詳細(xì)一些,APP展示的數(shù)據(jù)少,那么也會有“提供一個(gè)大而全的接口”還是“為不同的調(diào)用方提供不同接口”的問題。

問題5

日志、認(rèn)證和鑒權(quán)、計(jì)費(fèi)、監(jiān)控等等功能,需要各個(gè)后端來完善,或者接入到對應(yīng)的公共組件中(接入也是需要開發(fā)的),這就多多少少增加了后端服務(wù)的工作。

APIGateway就是為了解決以上種種問題的;APIGateway是系統(tǒng)的唯一入口,它屏蔽掉了系統(tǒng)的內(nèi)部架構(gòu),為調(diào)用方定制了統(tǒng)一的API。

單節(jié)點(diǎn)網(wǎng)關(guān)

多網(wǎng)關(guān)集群

我們可以看到APIGateway的作用:

  • 把后端各個(gè)服務(wù)的API聚合起來,提供統(tǒng)一且唯一規(guī)范的入口,這樣使得內(nèi)部的架構(gòu)對于調(diào)用方透明,客戶端和服務(wù)端的耦合度降低;各個(gè)后端服務(wù)之間,可以采用不同的實(shí)現(xiàn)方案,而APIGateway會屏蔽掉這些差異;

  • 后端的每個(gè)服務(wù)也都是在不斷迭代和升級的,APIGateway可以將請求路由到不同的接口版本上,可以實(shí)現(xiàn)灰度發(fā)布;

  • APIGateway可以進(jìn)行服務(wù)編排,實(shí)現(xiàn)數(shù)據(jù)聚合,也就是調(diào)用方一次請求,APIGateway調(diào)用多個(gè)服務(wù)拿到數(shù)據(jù)后返回;

  • APIGateway知道所有服務(wù)實(shí)例的地址,可以對不同的服務(wù)采用不同的路由策略;

  • 日志、認(rèn)證和鑒權(quán)、計(jì)費(fèi)、監(jiān)控等等功能都可以在APIGateway上實(shí)現(xiàn);

  • APIGateway還可以對流量進(jìn)行控制,通過熔斷、降級、限流等方式,保護(hù)后端服務(wù)。

我將持續(xù)分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注;關(guān)注我后,可私信發(fā)送數(shù)字【1】,獲取海量學(xué)習(xí)資料。