您好,登錄后才能下訂單哦!
這篇文章主要介紹“微服務網關gateway有哪些優點”,在日常操作中,相信很多人在微服務網關gateway有哪些優點問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”微服務網關gateway有哪些優點”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
簡述
Spring Cloud Gateway 是 Spring Cloud 的一個子項目,該項目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發的網關,它旨在為微服務架構提供一種簡單有效的統一的 API 路由管理方式。
Spring Cloud Gateway 作為 Spring Cloud 生態系統中的網關,目標是替代 Netflix Zuul,其不僅提供統一的路由方式,并且基于 Filter 的方式提供了網關基本的功能,例如:安全,監控/指標,和限流。
相關概念
Route(路由):網關的基本構件塊,類似于 nginx 的 location 配置。由一個 ID、一個目標 URI、一組 Predicate 和一組 Filter 定義
Predicate(斷言):路由組成的一部分,主要負責路由的匹配,來決定此次請求是否匹配路由,我們可以使用它匹配來自 HTTP 請求的任何內容,比如路徑、參數或者 header 信息等等
Filter(過濾器):這個是 GatewayFilter 的實例,請求經過 Predicate 匹配路由之后執行 Filter,我們可以使用它修改請求和響應。
Spring Cloud Gateway 網關路由有兩種配置方式:
通過配置文件配置
通過 @Bean 自定義 RouteLocator 去配置
這兩種方式是等價的,建議使用配置文件配置。因為 Spring Cloud Gateway 使用響應式編程框架,學習曲線相對陡峭。
server: port: 8088 eureka: client: serviceUrl: # 注冊中心地址 defaultZone: http://localhost:8761/eureka spring: application: name: test-gateway cloud: gateway: routes: - id: test1 uri: http://www.fhadmin.org predicates: - Path=/fhadmin/** filters: - StripPrefix=1
各字段含義如下:
id:我們自定義的路由 ID,保持唯一
uri:目標服務地址,大部分場景我們是轉發到某個服務上,配置 uri: lb://user-service 意思是請求要轉發到注冊中心的 user-service 服務上。
predicates:路由條件,接受一個參數,返回一個布爾結果決定是否匹配。Gateway 為我們內置了多種路由條件,包括 Path、Cookie、Param、Header、Before、After 等等,開箱即用,當然我們也可以自己實現 predicates
filters:過濾規則,當請求經過 predicate 匹配成功后,執行 filter,我們可以使用它修改請求和響應,示例表示目標服務收到的 path 將無第一級。
啟動程序,當我們訪問 localhost:8088/baidu 時,gateway 會根據我們配置的路由規則轉發到 https://www.fhadmin.org。
在gateway前面使用nginx,用nginx負載均衡到不同的gateway服務上。
到此,關于“微服務網關gateway有哪些優點”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。