成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

服務網關:網關概述與核心架構

開發 架構
今天,我們正式進入服務網關章節的學習,首先,我們對服務網關進行簡要的概述并對其核心架構進行簡要的剖析。

在《SpringCloud Alibaba實戰》專欄前面的文章中,我們實現了用戶微服務、商品微服務和訂單微服務之間的遠程調用,并且實現了服務調用的負載均衡。也基于阿里開源的Sentinel實現了服務的限流與容錯,并詳細介紹了Sentinel的核心技術與配置規則 。今天,我們正式進入服務網關章節的學習,首先,我們對服務網關進行簡要的概述并對其核心架構進行簡要的剖析。

本章總覽

網關概述

當采用分布式、微服務的架構模式開發系統中,服務網關是整個系統中必不可少的一部分。

沒有網關的弊端

當一個系統使用分布式、微服務架構后,系統會被拆分為一個個小的微服務,每個微服務專注一個小的業務。那么,客戶端如何調用這么多微服務的接口呢?如果不做任何處理,沒有服務網關,就只能在客戶端記錄下每個微服務的每個接口地址,然后根據實際需要去調用相應的接口。

這種直接使用客戶端記錄并管理每個微服務的每個接口的方式,存在著太多的問題。比如,這里我列舉幾個常見的問題。

  • 由客戶端記錄并管理所有的接口缺乏安全性。
  • 由客戶端直接請求不同的微服務,會增加客戶端程序編寫的復雜性。
  • 涉及到服務認證與鑒權規則時,需要在每個微服務中實現這些邏輯,增加了代碼的冗余性。
  • 客戶端調用多個微服務,由于每個微服務可能部署的服務器和域名不同,存在跨域的風險。
  • 當客戶端比較多時,每個客戶端上都管理和配置所有的接口,維護起來相對比較復雜。

引入API網關

API網關,其實就是整個系統的統一入口。網關會封裝微服務的內部結構,為客戶端提供統一的入口服務,同時,一些與具體業務邏輯無關的通用邏輯可以在網關中實現,比如認證、授權、路由轉發、限流、監控等。引入API網關后,如下所示。

可以看到,引入API網關后,客戶端只需要連接API網關,由API網關根據實際情況進行路由轉發,將請求轉發到具體的微服務,同時,API網關會提供認證、授權、限流和監控等功能。

主流的API網關

當系統采用分布式、微服務的架構模式后,API網關就成了整個系統不可分割的一部分。業界通過不斷的探索與創新,實現了多種API網關的解決方案。目前,比較主流的API網關有:Nginx+Lua、Kong官網、Zuul網關、Apache Shenyu網關、SpringCloud Gateway網關。

Nginx+Lua

Nginx的一些插件本身就實現了限流、緩存、黑白名單和灰度發布,再加上Nginx的反向代理和負載均衡,能夠實現對服務接口的負載均衡和高可用。而Lua語言可以實現一些簡單的業務邏輯,Nginx又支持Lua語言。所以,可以基于Nginx+Lua腳本實現網關。

Kong網關

Kong網關基于Nginx與Lua腳本開發,性能高,比較穩定,提供多個限流、鑒權等插件,這些插件支持熱插拔,開箱即用。Kong網關提供了管理頁面,但是,目前基于Kong網關二次開發比較困難。

Zuul網關

Zuul網關是Netflix開源的網關,功能比較豐富,主要基于Java語言開發,便于在Zuul網關的基礎上進行二次開發。但是Zuul網關無法實現動態配置規則,依賴的組件相對來說也比較多,在性能上不如Nginx。

Apache Shenyu網關

Dromara社區開發的網關框架,ShenYu 的前名是 soul,最近正式加入了 Apache 的孵化器,因此改名為 ShenYu。其是一個異步的,高性能的,跨語言的,響應式的API網關,并在此基礎上提供了非常豐富的擴展功能:

  • 支持各種語言(http協議),支持Dubbo, Spring-Cloud, Grpc, Motan, Sofa, Tars等協議。
  • 插件化設計思想,插件熱插拔,易擴展。
  • 靈活的流量篩選,能滿足各種流量控制。
  • 內置豐富的插件支持,鑒權,限流,熔斷,防火墻等等。
  • 流量配置動態化,性能極高。
  • 支持集群部署,支持 A/B Test,藍綠發布。

SpringCloud Gateway網關

Spring為了替換Zuul而開發的網關,SpringCloud Alibaba技術棧中,并沒有單獨實現網關的組件。在后續的案例實現中,我們會使用SpringCloud Gateway實現網關功能。

SpringCloud Gateway網關

Spring Cloud Gateway是Spring公司基于Spring 5.0, Spring Boot 2.0 和 Project Reactor 等技術開發的網關,它旨在為微服務架構提供一種簡單有效的統一的 API 路由管理方式。

它的目標是替代Netflix Zuul,其不僅提供統一的路由方式,并且基于 Filter 鏈的方式提供了網關基本的功能,例如:安全,監控和限流、重試等。

SpringCloud Gateway概述

Spring Cloud Gateway是Spring Cloud的一個全新項目,基于Spring 5.0 + Spring Boot 2.0和Project Reactor等技術開發的網關,它旨在為微服務架構提供一種簡單有效的統一的API路由管理方式。

Spring Cloud Geteway作為Spring Cloud生態系統中的網關,目標是替代Zuul,在Spring Cloud2.0以上版本中,沒有對新版本的Zuul 2.0以上最新高性能版本進行集成,仍然還是使用的Zuul 1.x非Reactor模式的老版本。

為了提升網關性能,Spring Cloud Gateway是基于WebFlux框架實現的,而WebFlux框架底層則使用了高性能的Reactor模式通信框架Netty。

Spring Cloud Gateway的目標提供統一的路由方式且基于Filter鏈的方式提供了網關基本的功能,例如:安全,監控/指標,和限流。

總結一句話:Spring Cloud Gateway使用的Webflux中的reactor-netty響應式編程組件,底層使用Netty通訊框架。

SpringCloud Gateway核心架構

客戶端請求到 Gateway 網關,會先經過 Gateway Handler Mapping 進行請求和路由匹配。匹配成功后再發送到 Gateway Web Handler 處理,然后會經過特定的過濾器鏈,經過所有前置過濾后,會發送代理請求。請求結果返回后,最后會執行所有的后置過濾器。

由上圖可以看出,SpringCloud Gateway的主要流程為:客戶端請求會先打到Gateway,具體的講應該是DispacherHandler(因為Gateway引入了WebFlux,作用可以類比MVC的DispacherServlet)。

Gateway根據用戶的請求找到相應的HandlerMapping,請求和具體的handler之間有一個映射關系,網關會對請求進行路由,handler會匹配到RoutePredicateHandlerMapping,匹配請求對應的Route,然后到達Web處理器。

WebHandler代理了一系列網關過濾器和全局過濾器的實例,這些過濾器可以對請求和響應進行修改,最后由代理服務完成用戶請求,并將結果返回。

注:SpringCloud Gateway部分參考鏈接:

https://www.csdn.net/tags/NtTagg0sMTk1OTItYmxvZwO0O0OO0O0O.htmlhttps://baijiahao.baidu.com/s?id=1685753662803832483。

責任編輯:姜華 來源: 冰河技術
相關推薦

2022-05-16 08:22:11

網關過濾器路由

2022-05-12 08:21:13

項目網關模塊

2025-01-13 16:00:00

服務網關分布式系統架構

2021-09-02 07:04:38

服務網關架構

2017-09-04 16:15:44

服務網關架構

2022-09-01 08:17:15

Gateway微服務網關

2024-08-05 10:03:53

2024-10-29 08:44:18

2020-04-29 14:33:49

微服務網關Kong

2020-10-10 10:37:54

微服務架構技術API

2017-09-09 23:15:20

Spring Clou微服務架構路由

2023-04-03 08:51:06

2020-06-04 09:24:26

微服務數據框架

2017-09-15 23:29:53

Spring Clou微服務架構過濾器

2019-11-27 09:32:46

API 網關微服務

2021-06-28 10:09:59

架構網關技術

2020-03-27 08:46:51

微服務服務網關

2023-06-09 14:46:36

2017-03-09 19:39:54

微服務架構重構

2009-03-24 08:31:14

SRX3000 服務網關junipe
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产中文字幕在线观看 | 亚洲精品久久久久久一区二区 | 成人超碰在线 | 国产欧美一区二区三区在线看 | 草久视频 | 亚洲视频中文字幕 | www.av在线| 国产成人在线免费 | 欧美日韩中文字幕在线 | h视频免费在线观看 | 久草福利| jlzzxxxx18hd护士 | 久久久久久成人网 | 国产日韩欧美一区 | 国产精品a免费一区久久电影 | 日韩久久中文字幕 | 国产蜜臀97一区二区三区 | 黄色一级大片在线免费看产 | 精品国产精品国产偷麻豆 | 亚洲精品视频在线播放 | 精品国产乱码一区二区三 | 午夜精品一区二区三区在线观看 | 国产视频二区在线观看 | 人人玩人人添人人澡欧美 | 欧美一区二区三区 | 国产伦精品一区二区三区视频金莲 | 久久三级影院 | 人人射人人草 | 婷婷久久网 | 91精品国产综合久久久亚洲 | 91精品国产91久久久 | 久久综合伊人 | 香蕉超碰| 久久久av | 日韩一级欧美一级 | 91精品国产综合久久久久 | 中文字幕av免费 | 国产精品一区二区三区四区 | 国产一区二区 | 国产在线aa | 欧美一区永久视频免费观看 |