網(wǎng)關(guān)-Spring Cloud Gateway

SpringCloud Gateway 是 Spring Cloud 的一個全新項目六水,該項目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術(shù)開發(fā)的網(wǎng)關(guān)皆疹,它旨在為微服務架構(gòu)提供一種簡單有效的統(tǒng)一的 API 路由管理方式殉簸。

SpringCloud Gateway 作為 Spring Cloud 生態(tài)系統(tǒng)中的網(wǎng)關(guān)魄梯,目標是替代 Zuul,在Spring Cloud 2.0以上版本中恰梢,沒有對新版本的Zuul 2.0以上最新高性能版本進行集成佛南,仍然還是使用的Zuul 2.0之前的非Reactor模式的老版本。而為了提升網(wǎng)關(guān)的性能删豺,SpringCloud Gateway是基于WebFlux框架實現(xiàn)的共虑,而WebFlux框架底層則使用了高性能的Reactor模式通信框架Netty。

Spring Cloud Gateway 的目標呀页,不僅提供統(tǒng)一的路由方式妈拌,并且基于 Filter 鏈的方式提供了網(wǎng)關(guān)基本的功能,例如:安全蓬蝶,監(jiān)控/指標尘分,和限流。

SpringCloud官方丸氛,對SpringCloud Gateway 特征介紹如下:

(1)基于 Spring Framework 5培愁,Project Reactor 和 Spring Boot 2.0

(2)集成 Hystrix 斷路器

(3)集成 Spring Cloud DiscoveryClient

(4)Predicates 和 Filters 作用于特定路由,易于編寫的 Predicates 和 Filters

(5)具備一些網(wǎng)關(guān)的高級功能:動態(tài)路由缓窜、限流定续、路徑重寫

從以上的特征來說,和Zuul的特征差別不大禾锤。SpringCloud Gateway和Zuul主要的區(qū)別私股,還是在底層的通信框架上。

簡單說明一下上文中的三個術(shù)語:

(1)Filter(過濾器):

和Zuul的過濾器在概念上類似恩掷,可以使用它攔截和修改請求倡鲸,并且對上游的響應,進行二次處理黄娘。過濾器為org.springframework.cloud.gateway.filter.GatewayFilter類的實例峭状。

(2)Route(路由):

網(wǎng)關(guān)配置的基本組成模塊克滴,和Zuul的路由配置模塊類似。一個Route模塊由一個 ID优床,一個目標 URI劝赔,一組斷言和一組過濾器定義。如果斷言為真胆敞,則路由匹配望忆,目標URI會被訪問。

(3)Predicate(斷言):

這是一個 Java 8 的 Predicate竿秆,可以使用它來匹配來自 HTTP 請求的任何內(nèi)容,例如 headers 或參數(shù)稿壁。斷言的輸入類型是一個 ServerWebExchange幽钢。

啟動Gateway

1.配置pom.xml
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

通過配置文件配置路由規(guī)則

server:
  port: 7999

spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true
      routes:
        - id: gateway-service
          uri: http://localhost:8083/testCallOrder
          predicates:
            - Path=/testCallOrder

測試

訪問http://localhost:7999/testCallOrder,會轉(zhuǎn)發(fā)到 localhost:8083/testCallOrder

gateway

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末傅是,一起剝皮案震驚了整個濱河市匪燕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喧笔,老刑警劉巖帽驯,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異书闸,居然都是意外死亡尼变,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門浆劲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫌术,“玉大人,你說我怎么就攤上這事牌借《绕” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵膨报,是天一觀的道長磷籍。 經(jīng)常有香客問我,道長现柠,這世上最難降的妖魔是什么院领? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮晒旅,結(jié)果婚禮上栅盲,老公的妹妹穿的比我還像新娘。我一直安慰自己废恋,他們只是感情好谈秫,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布扒寄。 她就那樣靜靜地躺著,像睡著了一般拟烫。 火紅的嫁衣襯著肌膚如雪该编。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天硕淑,我揣著相機與錄音课竣,去河邊找鬼。 笑死置媳,一個胖子當著我的面吹牛于樟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拇囊,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼迂曲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寥袭?” 一聲冷哼從身側(cè)響起路捧,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎传黄,沒想到半個月后杰扫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡膘掰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年章姓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炭序。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡啤覆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惭聂,到底是詐尸還是另有隱情窗声,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布辜纲,位于F島的核電站笨觅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏耕腾。R本人自食惡果不足惜见剩,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扫俺。 院中可真熱鬧苍苞,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冈欢,卻和暖如春歉铝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凑耻。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工太示, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人香浩。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓类缤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親邻吭。 傳聞我的和親對象是個殘疾皇子呀非,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355