最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud超詳細講解微服務網(wǎng)關Gateway

 更新時間:2022年07月16日 11:18:57   作者:_時光煮雨  
這篇文章主要介紹了SpringCloud Gateway微服務網(wǎng)關,負載均衡,熔斷和限流,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

上一篇:微服務網(wǎng)關Zuul

上文中,我們介紹了微服務網(wǎng)關Zuul,Zuul 是 Netflix 公司開源的產(chǎn)品,被稱為第一代網(wǎng)關,也是 Spring Cloud 前幾個版本默認使用的一款提供動態(tài)路由微服務網(wǎng)關組件,但是隨著 Netflix 公司一系列的停更事件,在最新的 Spring Cloud Greenwich 版本中已經(jīng)不建議采用 Zuul 技術,官方建議使用 Spring Cloud Gateway 作為默認的網(wǎng)關技術。 Spring Cloud Gateway作為第二代網(wǎng)關技術,比Zull更強,官方會一直維護更新下去。

所以本文需要再介紹一下Gateway。

微服務網(wǎng)關GateWay介紹

Spring Cloud Gateway 是 Spring 體系內(nèi)的一個全新項目,該項目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發(fā),它旨在為微服務架構(gòu)提供一種簡單有效的統(tǒng)一的 API 路由管理方式。

Spring Cloud Gateway 作為 Spring Cloud 生態(tài)系統(tǒng)中的網(wǎng)關,目標是替代 Netflix Zuul,其不僅提供統(tǒng)一的路由方式,并且基于 Filter 鏈的方式提供了網(wǎng)關基本的功能,例如:安全、監(jiān)控/指標和限流。

GateWay特性介紹

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

Gateway 中的相關術語

  • Route(路由):這是網(wǎng)關的基本構(gòu)建塊。它由一個 ID,一個目標 URI,一組斷言和一組過濾器定義。如果斷言為真,則路由匹配。
  • Predicate(斷言):這是一個 Java 8 的 Predicate。輸入類型是一個 ServerWebExchange。我們可以使用它來匹配來自 HTTP 請求的任何內(nèi)容,例如 headers 或參數(shù)。
  • Filter(過濾器):這是org.springframework.cloud.gateway.filter.GatewayFilter的實例,我們可以使用它修改請求和響應。

Gateway實戰(zhàn)

上文中,我們啟動了注冊中心registry,dms服務,和app服務,以及zuul服務,本文我們將創(chuàng)建gateway服務以替換zuul:

1、創(chuàng)建項目gateway

創(chuàng)建子模塊gateway ,pom.xml引入eureka-client 和gateway 的依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2、創(chuàng)建啟動類

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

啟動類上增加@EnableEurekaClient以及@SpringBootApplication注解。

3、新增配置文件

新增配置文件application.yml

server:
  port: 8004
spring:
  application:
    name: gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true
      routes:
        - id: eureka-client-app-1
          uri: lb://app
          predicates:
            - Path=/**
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8001/eureka/

spring.cloud.gateway.routes路由參數(shù)配置說明:

  • id:我們自定義的路由 ID。
  • uri:需要轉(zhuǎn)發(fā)的目標服務地址。
  • predicates:路由條件。
  • filters:過濾規(guī)則,本示例暫時沒用。

4、編程方式實現(xiàn)路由

上面路由規(guī)則我們也可以使用編程方式來實現(xiàn),在啟動類中增加如下代碼,是等效的:

@Configuration
public class GatewayConfig {
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        RouteLocatorBuilder.Builder routes = builder.routes();
        routes.route("eureka-client-app-1",r -> r.path("/**")
               .uri("lb://app"))
                .build();
        return routes.build();
    }
}

5、啟動驗證

訪問Gateway服務的地址:http://localhost:8004/app/index,效果如下:

總結(jié)

本文介紹了如何使用 Spring Cloud Gateway。Gateway 的特性以及兩種實現(xiàn)方式:一種是通過配置文件的方式來實現(xiàn),一種是通過編碼的方式來實現(xiàn),推薦使用配置文件的方式來使用,便于后期修改維護。

到此這篇關于SpringCloud超詳細講解微服務網(wǎng)關Gateway的文章就介紹到這了,更多相關SpringCloud Gateway內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 一文帶你搞懂Java定時器Timer的使用

    一文帶你搞懂Java定時器Timer的使用

    定時器類似于我們生活中的鬧鐘,可以設定一個時間來提醒我們。而定時器是指定一個時間去執(zhí)行一個任務,讓程序去代替人工準時操作。本文就來聊聊Java定時器Timer的使用,需要的可以參考一下
    2023-01-01
  • Java實現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼

    Java實現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼

    這篇文章主要為大家介紹了如何利用Java語言是PDF轉(zhuǎn)HTML、Word、Excel、PPT和PNG功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-05-05
  • JDK更換IDEA如何修改圖文詳解

    JDK更換IDEA如何修改圖文詳解

    這篇文章主要給大家介紹了關于JDK更換IDEA如何修改的相關資料,Java的不同版本的JDK之間存在細微的差別,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Spring注解之@Import使用方法講解

    Spring注解之@Import使用方法講解

    @Import是Spring基于Java注解配置的主要組成部分,下面這篇文章主要給大家介紹了關于Spring注解之@Import的簡單介紹,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Java集合總結(jié)

    Java集合總結(jié)

    今天小編就為大家分享一篇關于Java集合總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java 3種方法實現(xiàn)進制轉(zhuǎn)換

    Java 3種方法實現(xiàn)進制轉(zhuǎn)換

    這篇文章主要介紹了Java 3種方法實現(xiàn)進制轉(zhuǎn)換,幫助大家利用Java處理數(shù)據(jù),感興趣的朋友可以了解下
    2020-09-09
  • MyBatis/mybatis-plus項目打印SQL的方法實現(xiàn)

    MyBatis/mybatis-plus項目打印SQL的方法實現(xiàn)

    SpringBoot項目中,經(jīng)常需要打印SQL語句及其參數(shù),本文就來介紹一下MyBatis/mybatis-plus項目打印SQL的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • 詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法

    詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法

    這篇文章主要介紹了詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • Java基礎知識精選 你答對了幾道?

    Java基礎知識精選 你答對了幾道?

    精選Java基礎知識講解,看看你能答對多少?
    2017-09-09
  • Java實現(xiàn)n位數(shù)字的全排列

    Java實現(xiàn)n位數(shù)字的全排列

    今天小編就為大家分享一篇關于Java實現(xiàn)n位數(shù)字的全排列,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論

中方县| 嘉善县| 内丘县| 石渠县| 五台县| 常州市| 铜鼓县| 长岛县| 固镇县| 宁都县| 乌海市| 龙江县| 满洲里市| 临泉县| 湘阴县| 宜都市| 阳谷县| 赤水市| 遂溪县| 闽侯县| 新河县| 龙里县| 胶南市| 柏乡县| 乐昌市| 肇源县| 丹寨县| 新巴尔虎右旗| 潢川县| 房山区| 景洪市| 克什克腾旗| 贵南县| 苍山县| 江源县| 乐山市| 板桥市| 凤城市| 垦利县| 临沭县| 巴南区|