亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Spring Cloud Gateway基于服務發現的默認路由規則

發布時間:2020-09-29 12:56:02 來源:腳本之家 閱讀:649 作者:lockie_zou 欄目:編程語言

1.Spring Gateway概述

1.1 什么是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基于服務發現的默認路由規則

1.2 Spring Cloud Gateway的功能

Spring Cloud Gateway 的特征:

  • 基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0
  • 動態路由
  • Predicates 和 Filters 作用于特定路由
  • 集成 Hystrix 斷路器
  • 集成 Spring Cloud DiscoveryClient
  • 易于編寫的 Predicates 和 Filters
  • 限流
  • 路徑重寫

2. Spring Cloud Gateway的工程流程

詳解Spring Cloud Gateway基于服務發現的默認路由規則

客戶端向 Spring Cloud Gateway 發出請求。然后在 Gateway Handler Mapping 中找到與請求相匹配的路由,將其發送到 Gateway Web Handler。Handler 再通過指定的過濾器鏈來將請求發送到我們實際的服務執行業務邏輯,然后返回。
過濾器之間用虛線分開是因為過濾器可能會在發送代理請求之前(“pre”)或之后(“post”)執行業務邏輯。

2.1 Pre和POST兩種類型的過濾器

3.基于服務發現的默認路由規則

3.1 zuul和gateway的默認路由規則

3.1.1 zuul的默認路由規則

說明默認情況下,Zuul會代理所有注冊到Eureka Server的微服務,并且Zuul的路由規則如下:

http://ZUUL_HOST:ZUUL_PORT/微服務在Eureka上的serviceId/** 會被轉發到serviceId對應的微服務。

http://localhost:8040/sc-zuul-first-provider/sc/order/2

詳解Spring Cloud Gateway基于服務發現的默認路由規則

3.1.2 gateway的默認路由規則

規則:http://Gateway_HOST:Gateway_PORT/大寫的serviceId/**

其中微服務應用名默認大寫訪問。

實例代碼:

模塊 說明 端口
eureka-service Eureka Server注冊中心 5000
gateway-service Spring Cloud Gateway Sever 5001
order-service 服務提供者 5100
user-service 服務消費者 5200

分別新建上面這四個服務,詳見 spring cloud Finchley環境搭建

其中gateway-service服務的application.yml配置文件如下:

spring:
 application:
 name: gateway-service
 cloud:  # spring cloud gateway 路由配置方式
 gateway:
  discovery:  #是否與服務發現組件進行結合,通過 serviceId(必須設置成大寫) 轉發到具體的服務實例。默認為false,設為true便開啟通過服務中心的自動根據 serviceId 創建路由的功能。
  locator:  #路由訪問方式:http://Gateway_HOST:Gateway_PORT/大寫的serviceId/**,其中微服務應用名默認大寫訪問。
   enabled: true
  routes:
  - id: 163      #網關路由到網易官網
  uri: http://www.163.com/
  predicates:
   - Path=/163/**
#  - id: ORDER-SERVICE   #網關路由到訂單服務order-service
#  uri: lb://ORDER-SERVICE
#  predicates:
#   - Path=/ORDER-SERVICE/**
#  - id: USER-SERVICE   #網關路由到用戶服務user-service
#  uri: lb://USER-SERVICE
#  predicates:
#   - Pach=/USER-SERVICE/**

server:
 port: 5001


logging:
 level:
 org.springframework.cloud.gateway: trace
 org.springframework.http.server.reactive: debug
 org.springframework.web.reactive: debug
 reactor.ipc.netty: debug


eureka:
 client:
 service-url:
  defaultZone: http://localhost:5000/eureka/

feign:
 hystrix:
 enabled: true

配置項說明:

spring.cloud.gateway.discovery.locator.enabled:是否與服務發現組件進行結合,通過 serviceId 轉發到具體的服務實例。默認為false,設為true便開啟通過服務中心的自動根據 serviceId 創建路由的功能。

eureka.client.service-url.defaultZone: http://localhost:5000/eureka/,指定注冊中心的地址,Spring Cloud Gateway從注冊中心獲取已經注冊的服務列表。

logging.level.org.springframework.cloud.gateway: debug,開啟spring-Cloud-gateway的日志級別為debug,方便debug調試。

3.3 啟動測試

3.3.1 錯誤的路由規則訪問

訪問Spring Cloud Gateway對應的server,當訪問http://localhost:5000/order-service/order/getOrderPort的時候,會出現報錯內容如下所示:

詳解Spring Cloud Gateway基于服務發現的默認路由規則

正確的Spring Cloud Gateway的默認路由規則:http://Gateway_HOST:Gateway_PORT/大寫的serviceId/**

3.3.2 Gateway正確的路由規則測試

詳解Spring Cloud Gateway基于服務發現的默認路由規則

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠州市| 曲靖市| 探索| 建始县| 六枝特区| 罗定市| 买车| 东光县| 宣恩县| 榆中县| 保德县| 烟台市| 师宗县| 永靖县| 黑河市| 临海市| 蒙阴县| 苍山县| 百色市| 泌阳县| 德安县| 北安市| 广宗县| 宜川县| 长宁县| 应城市| 鞍山市| 博乐市| 桐梓县| 抚远县| 涞源县| 益阳市| 喀喇沁旗| 沁阳市| 吉木乃县| 宜良县| 卢龙县| 内乡县| 白朗县| 长治县| 泰顺县|