久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>springcloud各種概念(SpringCloudGateway核心概念和工作原理-Part)

springcloud各種概念(SpringCloudGateway核心概念和工作原理-Part)

發布時間:2024-01-24閱讀(14)

導讀SpringCloudGateway概述SpringCloudGateway是Spring官方基于Spring5.0,SpringBoot2.0和Proje....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生態系中的網關,目標是替代Netflix ZUUL,其不僅提供統一的路由方式,并且基于filter鏈的方式提供了網關基本的功能,例如:安全,監控/埋點,和限流等。

Spring Cloud Gateway的特征
  • Java 8
  • Spring Framework 5
  • Spring Boot 2
  • 動態路由
  • 內置到Spring Handler映射中的路由匹配
  • 基于HTTP請求的路由匹配 (Path, Method, Header, Host, etc…)
  • 過濾器作用于匹配的路由
  • 過濾器可以修改下游HTTP請求和HTTP響應 (Add/Remove Headers, Add/Remove Parameters, Rewrite Path, Set Path, Hystrix, etc…)
  • 通過API或配置驅動
  • 支持Spring Cloud DiscoveryClient配置路由,與服務發現與注冊配合使用
Spring Cloud Gateway核心概念

使用過Zuul的人,都知道網關的核心肯定是Filter以及Filter Chain(Filter 責任鏈)。Spring Cloud Gateway也具有路由和Filter的概念。下面介紹一下Spring Cloud Gateway中的幾個重要概念。

  • Route(路由): 路由是網關的基本組件。它的定義是一個ID,一個目標URI,一組謂詞和一組過濾器。如果聚合謂詞為真,則匹配路由。
  • Predicate(謂詞): 這是一個 Java 8 Function Predicate。輸入類型是一個 Spring Framework ServerWebExchange。這允許開發人員對HTTP請求中的任何內容進行匹配,例如頭和參數。
  • Filter(過濾器): 一個標準的Spring webFilter。Spring Cloud Gateway中的Filter分為兩種類型的Filter,分別是Gateway Filter和Global Filter。在這里,可以在發送下游請求之前或之后修改請求和響應。
Spring Cloud Gateway的工作原理

Spring Cloud Gateway 核心處理流程如下所示。

Gateway的客戶端向Spring Cloud Gateway發起請求,請求首先會被 Gateway Handler Mapping 接收,決定請求匹配的路由,然后發送給Gateway Web Handler。Handler 通過特定的請求filter鏈發送請求。

過濾鏈通過虛線分隔的原因是過濾器filter可以在代理請求發送之前或者之后執行邏輯。執行所有 pre 過濾邏輯,然后發出請求給代理服務(proxied service),之后將執行 post 過濾器邏輯。

springcloud各種概念(SpringCloudGateway核心概念和工作原理-Part)(1)

Spring Cloud Gateway相關依賴項

將如下依賴項添加到Spring Cloud項目的pom.xml文件中。

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

<!--Spring Cloud Gateway的Starter-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-gateway</artifactId>

</dependency>

</dependencies>

Spring Cloud Gateway提供了一個gateway actuator,該EndPoint 提供了關于Filter和Routes的信息查詢。可以在application.yml 中配置開啟。

springcloud各種概念(SpringCloudGateway核心概念和工作原理-Part)(2)

訪問gateway 端點:

http://localhost:8080/actuator/gateway/routes

可以看到返回的路由信息:

springcloud各種概念(SpringCloudGateway核心概念和工作原理-Part)(3)

Spring Cloud Gateway網關路由方式

新的gateway網關路由配置有兩種方式:

1.通過@Bean自定義RouteLocator,在啟動主類Application中配置。

springcloud各種概念(SpringCloudGateway核心概念和工作原理-Part)(4)

2.在配置文件yml中配置。

springcloud各種概念(SpringCloudGateway核心概念和工作原理-Part)(5)

這兩種方式都可以實現網關路由是等價的,但是通常項目開發中會使用配置文件yml方式。

相關鏈接:

https://cloud.spring.io/spring-cloud-gateway/spring-cloud-gateway.html

相關文章

    Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖