微服務網(wǎng)關起源

傳統(tǒng)服務

傳統(tǒng)的企業(yè)級應用是單體應用,一般是分層結構,如表現(xiàn)層/應用層/領域?qū)?數(shù)據(jù)層,這主要是水平切分的思想。一般的架構圖如下:

orgservice.png

上述的好處是有條件的:應用不那么復雜。對于大規(guī)模的復雜應用,巨石型應用會顯得特別笨重:要修改一個地方就要將整個應用全部部署(PS:在不同的場景下優(yōu)勢也變成了劣勢);編譯時間過長;回歸測試周期過長;開發(fā)效率降低等。另外,巨石應用不利于更新技術框架,除非你愿意將系統(tǒng)全部重寫

微服務架構

微服務是為適應當前互聯(lián)網(wǎng)快速發(fā)展,互聯(lián)網(wǎng)應用快速迭代、快速部署而產(chǎn)生的技術架構,微服務強調(diào)的是在共享硬件資源的基礎上隔離,缺乏軟件共享;相當于敏捷的建立了很多小煙囪系統(tǒng),降低耦合.

微服務所設計的每個微服務都要非常容易被拋棄、被替換。擁抱不斷變化的業(yè)務,快讀迭代開發(fā)。微服務設計目標是降低系統(tǒng)復雜度,提高開發(fā)生產(chǎn)力,是適合敏捷方法快速建立持續(xù)改進的系統(tǒng),例如互聯(lián)網(wǎng)應用.

微服務架構圖:

server2.png

微服務網(wǎng)關

微服務在每個子服務的上層封裝了一層網(wǎng)關服務層。

微服務網(wǎng)關存在的意義與價值:

  • 微服務每個服務可以獨立部署并且互相隔離,對外提供不同服務,這樣會造成客戶端從原來傳統(tǒng)服務的"1對1”變成了微服務體系下的"1對N",微服務體系下解決"1對N"問題方案就是在所有微服務的上層在抽象封裝一層,微服務網(wǎng)關層。用于對外統(tǒng)一提供服務,屏蔽內(nèi)部獨立服務的訪問,同時子服務的添加,移除對外無感知,增加了系統(tǒng)的擴展性。
  • 與傳統(tǒng)單一服務對比,微服務由于分割成無數(shù)個單獨的子服務,那么在,鑒權、流控、校驗等預處理的邏輯,每個單獨子服務都需要編寫,造成代碼多處冗余,同時業(yè)務變動也需要所有的子服務變更。那么將這些預處理邏輯抽象統(tǒng)一到上層網(wǎng)關層做就變得很有意義了,子服務只需關注自身業(yè)務邏輯的處理。

開源微服務網(wǎng)關:

  • zuul :netflix開源的一個API Gateway 服務器, 本質(zhì)上是一個web servlet應用,同時與springcloud無縫的集成
  • springcloud-gateway:是spring團隊開發(fā)非阻塞的IO 的API網(wǎng)關。
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容