java spring cloud版b2b2c社交電商--服務(wù)網(wǎng)關(guān) Spring Cloud GateWay 入門

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

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

相關(guān)概念:

Route(路由):這是網(wǎng)關(guān)的基本構(gòu)建塊。它由一個 ID,一個目標(biāo) URI,一組斷言和一組過濾器定義。如果斷言為真,則路由匹配。

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

Filter(過濾器):這是org.springframework.cloud.gateway.filter.GatewayFilter的實(shí)例,我們可以使用它修改請求和響應(yīng)。

工作流程:

spring-cloud-gateway工作流程.png

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

Spring Cloud Gateway 的特征:

基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0

動態(tài)路由

Predicates 和 Filters 作用于特定路由

集成 Hystrix 斷路器

集成 Spring Cloud DiscoveryClient

易于編寫的 Predicates 和 Filters

限流

路徑重寫

Spring Cloud Gateway 與 Zuul的區(qū)別:

1、Zuul 1.x,是一個基于阻塞 I/ O 的 API Gateway

2、Zuul 1.x 基于Servlet 2. 5,使用阻塞架構(gòu),它不支持任何長連接,如 WebSocket。 Zuul 的設(shè)計(jì)模式和Nginx較像,每次 I/ O 操作都是從工作線程中選擇一個執(zhí)行,請求線程被阻塞到工作線程完成,但是差別是Nginx 用C++ 實(shí)現(xiàn),Zuul 用 Java 實(shí)現(xiàn),而 JVM 本身會有第一次加載較慢的情況,使得Zuul 的性能相對較差。

3、Zuul 2.x,基于 Netty 非阻塞、支持長連接,但 Spring Cloud 目前還沒有整合。 Zuul 2.x的性能較 Zuul 1.x 有較大提升。在性能方面,根據(jù)官方提供的基準(zhǔn)測試, Spring Cloud Gateway 的 RPS(每秒請求數(shù))是Zuul 的 1. 6 倍。

4、Spring Cloud Gateway 建立 在 Spring Framework 5、 Project Reactor 和 Spring Boot 2 之上, 使用非阻塞 API。

5、Spring Cloud Gateway 還 支持 WebSocket, 并且 與 Spring 緊密集成, 擁有更好的開發(fā)體驗(yàn)。

電子商務(wù)社交平臺源碼請加企鵝求求:三五三六二四七二五九

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容