91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Spring Cloud Gateway 網關嘗鮮

發布時間:2020-08-19 08:14:45 來源:ITPUB博客 閱讀:251 作者:猿天地 欄目:互聯網科技

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鏈的方式提供了網關基本的功能,例如:安全,監控/埋點,和限流等。

可能有同學就要問了,不是已經有Zuul了嗎,為什么又搞了一個網關,這更新的節奏確實很快哈,沒精力還真學習不過來。

之所以新搞了一個網關,是因為Zuul基于servlet 2.5 (works with 3.x),使用阻塞API。它不支持任何長期的連接,如websocket。

Gateway建立在Spring Framework 5,Project Reactor和Spring Boot 2上,使用非阻塞API。支持Websockets,因為它與Spring緊密集成,所以它會是一個讓開發者有更好體驗的框架。當然性能的提升是肯定的,不然完全沒必要重新搞一個啊,只不過Zuul2出來的太遲了,自己已經搞了一個,所以不太可能會將Zuul2集成到Spring Cloud中了。

關于性能這塊的比較可以參考我周兄的文章《糾錯帖:Zuul & Spring Cloud Gateway & Linkerd性能對比》

工作原理

如上圖所示,客戶端發送請求到Spring Cloud Gateway,Gateway Handler Mapping確定請求與路由匹配,則會將請求交給Gateway Web Handler處理。
在代理前后可以執行多個過濾器。最后代理到具體的服務。

項目集成Gateway

首先還是最基本的步驟,創建一個Maven項目,添加Gateway需要的依賴信息:

<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>2.0.1.RELEASEversion>
parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-dependenciesartifactId>
            <version>Finchley.RELEASEversion>
            <type>pomtype>
            <scope>importscope>
        dependency>
    dependencies>
dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloudgroupId>
        <artifactId>spring-cloud-starter-gatewayartifactId>
    dependency>
dependencies>

編寫啟動類:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * 網關啟動入口
 * 
 * @author yinjihuan
 * 
 * @about http://cxytiandi.com/about
 *
 */

@SpringBootApplication
public class GatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }
}

簡單路由示列

下面來實現一個最簡單的轉發功能,基于Path的匹配轉發功能。

在resources下面建一個application.yml的文件, 內容如下:

server:
  port: 8084
spring:
  cloud:
    gateway:
      routes:
      - id: path_route
        uri: http://cxytiandi.com
        predicates:
        - Path=/course

當你訪問http://localhost:8084/course的時候就會轉發到http://cxytiandi.com/course,效果如下:

Spring Cloud Gateway 網關嘗鮮

關于路由規則什么的我們后面再做介紹,本章只是先體驗下Spring Cloud Gateway的功能,能夠創建一個新的項目,成功啟動就可以了,一步步來。

如果你的項目中包含了spring-cloud-starter-gateway,但你不想啟動網關的時候可以通過下面的配置禁用掉:

application.properties

spring.cloud.gateway.enabled=false.

application.yml

spring:
  cloud:
    gateway:
      enabled: false

上面講解的是基于配置的方式來實現路由,還有一種方式是通過代碼的方式來進行路由,比如:

@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
       return builder.routes()
              .route(r -> r.path("/course").uri("http://cxytiandi.com"))
              .build();
}

示列代碼:https://github.com/yinjihuan/spring-cloud/tree/master/fangjia-gateway

原文鏈接:https://mp.weixin.qq.com/s/92JDqjRcv452FfQUJxuRhw

向AI問一下細節

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

AI

阿拉尔市| 盈江县| 鲁甸县| 淮滨县| 安顺市| 宣恩县| 胶南市| 宁国市| 新晃| 昭觉县| 拜泉县| 南涧| 定南县| 新竹市| 龙门县| 徐汇区| 德庆县| 罗甸县| 怀远县| 永德县| 长武县| 巴林右旗| 大渡口区| 汽车| 北安市| 滁州市| 通许县| 远安县| 罗定市| 汉寿县| 浦东新区| 贵港市| 辽宁省| 永德县| 梅州市| 抚顺县| 当雄县| 太仆寺旗| 阳朔县| 汤原县| 禹州市|