鋒哥原創的微服務網關Gateway視頻教程:
Gateway微服務網關視頻教程(無廢話版)_嗶哩嗶哩_bilibiliGateway微服務網關視頻教程(無廢話版)共計17條視頻,包括:1_Gateway簡介、2_Gateway工作原理、3_Gateway HelloWorld快速入門等,UP主更多精彩視頻,請關注UP賬號。https://www.bilibili.com/video/BV1oX4y1u7ZJ/
1.1 API網關介紹
網關的角色是作為一個 API 架構,用來保護、增強和控制對于 API 服務的訪問。
API 網關是一個處于應用程序或服務(提供 REST API 接口服務)之前的系統,用來管理授權、訪問控制和流量限制等,這樣 REST API 接口服務就被 API 網關保護起來,對所有的調用者透明。因此,隱藏在 API 網關后面的業務系統就可以專注于創建和管理服務,而不用去處理這些策略性的基礎設施。
在微服務架構里,服務的粒度被進一步細分,各個業務服務可以被獨立的設計、開發、測試、部署和管理。這時,各個獨立部署單元可以用不同的開發測試團隊維護,可以使用不同的編程語言和技術平臺進行設計,這就要求必須使用一種語言和平 臺無關的服務協議作為各個單元間的通訊方式。
1.2 API網關作用
1.3 API網關開源實現
用于實現API網關的技術有很多,大致分為這么幾類:
通用反向代理:Nginx、Haproxy、…… 網絡編程框架:Netty、Servlet、…… API網關框架:Spring Cloud Gateway、Zuul、Zuul2、……
1.4 Gateway網關介紹
https://spring.io/projects/spring-cloud-gateway
Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技術開發的網關,Spring Cloud Gateway旨在為微服務架構提供一種簡單而有效的統一的API路由管理方式。Spring Cloud Gateway作為Spring Cloud生態系中的網關,目標是替代ZUUL,其不僅提供統一的路由方式,并且基于Filter鏈的方式提供了網關基本的功能,例如:安全,監控/埋點,和限流等。
spring Cloud Gateway 可以看做是一個 Zuul 1.x 的升級版和代替品,比 Zuul 2 更早的使用 Netty 實現異步 IO,從而實現了一個簡單、比 Zuul 1.x 更高效的、與 Spring Cloud 緊密配合的 API 網關。 Spring Cloud Gateway 里明確的區分了 Router 和 Filter,并且一個很大的特點是內置了非常多的開箱即用功能,并且都可以通過 SpringBoot 配置或者手工編碼鏈式調用來使用。 比如內置了 10 種 Router,使得我們可以直接配置一下就可以隨心所欲的根據 Header、或者 Path、或者 Host、或者 Query 來做路由。 比如區分了一般的 Filter 和全局 Filter,內置了 20 種 Filter 和 9 種全局 Filter,也都可以直接用。當然自定義 Filter 也非常方便。
gateway特性:
-
基于SpringFramework5,ProjectReactor和SpringBoot2.0進行構建
-
能夠匹配任何任何請求屬性
-
可以對路由指定Predicates和Filters
-
集成斷路器
-
集成Spring Cloud服務發現
-
易于編寫的Predicates和Filters
-
支持請求限流
-
支持路徑重寫
官網文檔:
https://docs.spring.io/spring-cloud-gateway/docs/2.2.7.RELEASE/reference/html/