- 《架構(gòu)世界》2020微服務(wù)刊:微服務(wù)分布式事務(wù)實(shí)戰(zhàn)
- 普元信息
- 1001字
- 2020-09-03 11:23:33
. 簡(jiǎn)介
網(wǎng)關(guān)出現(xiàn)的原因是微服務(wù)架構(gòu)的出現(xiàn),不同的微服務(wù)一般會(huì)有不同的網(wǎng)絡(luò)地址,而外部客戶(hù)端可能需要調(diào)用多個(gè)服務(wù)的接口才能完成一個(gè)業(yè)務(wù)需求,如果讓客戶(hù)端直接與各個(gè)微服務(wù)通信,會(huì)有以下的問(wèn)題:
? 客戶(hù)端會(huì)多次請(qǐng)求不同的微服務(wù),增加了客戶(hù)端的復(fù)雜性。
? 存在跨域請(qǐng)求,在一定場(chǎng)景下處理相對(duì)復(fù)雜。
? 認(rèn)證復(fù)雜,每個(gè)服務(wù)都需要獨(dú)立認(rèn)證。
? 難以重構(gòu),隨著項(xiàng)目的迭代,可能需要重新劃分微服務(wù)。例如,可能將多個(gè)服務(wù)合并成一個(gè)或者將一個(gè)服務(wù)拆分成多個(gè)。如果客戶(hù)端直接與微服務(wù)通信,那么重構(gòu)將會(huì)很難實(shí)施。
? 某些微服務(wù)可能使用了防火墻 / 瀏覽器不友好的協(xié)議,直接訪問(wèn)會(huì)有一定的困難。
以上這些問(wèn)題可以借助
網(wǎng)關(guān)解決。 網(wǎng)關(guān)是介于客戶(hù)端和服務(wù)器端之間的中間層,所有的外部請(qǐng)求都會(huì)先經(jīng)過(guò) 網(wǎng)關(guān)這一層。
使用
網(wǎng)關(guān)后的優(yōu)點(diǎn)如下:? 易于監(jiān)控。可以在網(wǎng)關(guān)收集監(jiān)控?cái)?shù)據(jù)并將其推送到外部系統(tǒng)進(jìn)行分析。
? 易于認(rèn)證。可以在網(wǎng)關(guān)上進(jìn)行認(rèn)證,然后再將請(qǐng)求轉(zhuǎn)發(fā)到后端的微服務(wù),而無(wú)須在每個(gè)微服務(wù)中進(jìn)行認(rèn)證。
? 減少了客戶(hù)端與各個(gè)微服務(wù)之間的交互次數(shù)。
是 官方基于 . , . 和 等技術(shù)開(kāi)發(fā)的網(wǎng)關(guān)。 旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效而統(tǒng)一的 路由管理方式。
作為 生態(tài)系中的網(wǎng)關(guān),目標(biāo)是替代 ,其不僅提供統(tǒng)一的路由方式,并且基于 鏈的方式提供了網(wǎng)關(guān)各類(lèi)功能,例如:安全,監(jiān)控/埋點(diǎn),和限流等。

架構(gòu)
如圖所示,
的架構(gòu)如上,看起來(lái)很簡(jiǎn)單。它內(nèi)部包含了一個(gè)高性能的 ,用來(lái)接收各類(lèi)網(wǎng)絡(luò)請(qǐng)求。請(qǐng)求進(jìn)來(lái)之后,會(huì)根據(jù)配置的各個(gè)路由進(jìn)行匹配并處理請(qǐng)求。每個(gè)路由都可以定義多個(gè)斷言( ),用于路由匹配。默認(rèn)提供了 多個(gè)內(nèi)建的斷言,可以基于請(qǐng)求的各個(gè)方面(請(qǐng)求頭,路徑,路徑,時(shí)間, , 方法等)進(jìn)行路由匹配。如果還不夠,用戶(hù)還可以自已擴(kuò)展。
請(qǐng)求匹配到了合適的路由之后,就會(huì)按照路由中配置的各過(guò)濾器(
),按順序?qū)φ?qǐng)求進(jìn)行處理。 也基本上可以對(duì)請(qǐng)求的所有屬性做處理,修改,添加或者除請(qǐng)求頭,修改請(qǐng)求數(shù)據(jù),修改返回的數(shù)據(jù)等,幾乎無(wú)所不能。當(dāng)然,修改請(qǐng)求也只是一方面的用途,認(rèn)證,鑒權(quán),記錄日志等也都可以在網(wǎng)關(guān)中統(tǒng)一來(lái)做。所有
形成處理鏈,直到所有的 處理完,才會(huì)交給最后面的 ,由它將處理過(guò)的請(qǐng)求發(fā)送至對(duì)應(yīng)的微服務(wù)。在請(qǐng)求發(fā)送至微服務(wù)之前,還可以定義它的負(fù)載均衡策略(
),以決定請(qǐng)求至底發(fā)往微服務(wù)的哪個(gè)實(shí)例。與 都支持自行擴(kuò)展。
推薦閱讀
- 人文(第六卷)
- 《架構(gòu)師》2022年6月
- 杭州學(xué)刊(2018年第3期)
- 《架構(gòu)師》2022年4月
- 《架構(gòu)師》2022年5月
- 道教學(xué)刊(2020年第一輯/總第5期)
- 西藏人文地理(2021年第2期)
- 政治人類(lèi)學(xué)評(píng)論(總第12輯)
- 中國(guó)歷史研究院集刊(2020年第2輯·總第2輯)
- 《架構(gòu)師》2019年6月
- 審計(jì)與理財(cái)(2021年第4期)
- 音樂(lè)愛(ài)好者(2013年第3期)
- 潮學(xué)研究(2020年第1輯·總第23期)
- 中國(guó)軍轉(zhuǎn)民(2021年第1期·上半月)
- 上海信息化(2020年第5期)