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

Zuul1與Spring Cloud Gateway的區(qū)別及說明

 更新時間:2025年07月17日 10:03:00   作者:weixin_46582710  
Zuul1基于Servlet阻塞IO,穩(wěn)定但高并發(fā)易耗盡線程;SpringCloudGateway采用非阻塞IO和Netty,性能更優(yōu)、內(nèi)置限流,適合高并發(fā)場景,兩者均支持SpringCloud集成,但Zuul1有更多生產(chǎn)落地案例

Zuul1簡介

Zuul1是Netflix在2013年開源的網(wǎng)關(guān)組件,大規(guī)模的應(yīng)用在Netflix的生產(chǎn)環(huán)境中,經(jīng)受了實踐考驗。它可以與Eureka、Ribbon、Hystrix等組件配合使用,實現(xiàn)路由轉(zhuǎn)發(fā)、負(fù)載均衡、熔斷等功能。Zuul1的核心是一系列過濾器,過濾器簡單易于擴(kuò)展,已經(jīng)有一些三方庫如spring-cloud-zuul-ratelimit等提供了過濾器支持。

Zuul1基于Servlet構(gòu)建,使用的是阻塞的IO,引入了線程池來處理請求。每個請求都需要獨立的線程來處理,從線程池中取出一個工作線程執(zhí)行,下游微服務(wù)返回響應(yīng)之前這個工作線程一直是阻塞的。

Spring Cloud Gateway簡介

Spring Cloud Gateway 是Spring Cloud的一個全新的API網(wǎng)關(guān)項目,目的是為了替換掉Zuul1。Gateway可以與Spring Cloud Discovery Client(如Eureka)、Ribbon、Hystrix等組件配合使用,實現(xiàn)路由轉(zhuǎn)發(fā)、負(fù)載均衡、熔斷等功能,并且Gateway還內(nèi)置了限流過濾器,實現(xiàn)了限流的功能。

Gateway基于Spring 5、Spring boot 2和Reactor構(gòu)建,使用Netty作為運(yùn)行時環(huán)境,比較完美的支持異步非阻塞編程。Netty使用非阻塞的IO,線程處理模型建立在主從Reactors多線程模型上。其中Boss Group輪詢到新連接后與Client建立連接,生成NioSocketChannel,將channel綁定到Worker;Worker Group輪詢并處理Read、Write事件。

產(chǎn)品對比

下邊以表格形式對Zuul1和Gateway作簡單對比:

對比項Zuul1.xGateway
實現(xiàn)基于Servlet2.x構(gòu)建,使用阻塞的API基于Spring 5、Project Reactor、Spring Boot 2,使用非阻塞式的API
長連接不支持支持
不適用場景后端服務(wù)響應(yīng)慢或者高并發(fā)場景下,因為線程數(shù)量是固定(有限)的,線程容易被耗盡,導(dǎo)致新請求被拒絕。中小流量的項目,使用Zuul1.x更合適。
限流內(nèi)置限流過濾器
上手難度同步編程,上手簡單門檻較高,上手難度中等
Spring Cloud集成
Sentinel集成
技術(shù)棧沉淀Zuul1開源近七年,經(jīng)受考驗,穩(wěn)定成熟。未見實際落地案例
Github used by1007 repositories102 repositories
Github issues88 Open / 2736 Closed135 Open / 850 Closed

注:Github used by和Github issues統(tǒng)計時間截止2019/8/26。

性能對比

低并發(fā)場景

不同的tps,同樣的請求時間(50s),對兩種網(wǎng)關(guān)產(chǎn)品進(jìn)行壓力測試,結(jié)果如下:

tps測試樣本Zuul1/Gateway,單位個平均響應(yīng)時間Zuul1/Gateway, 單位毫秒99%響應(yīng)時間小于Zuul1/Gateway,單位毫秒錯誤比例Zuul1/Gateway
20tps20977 / 2058011 / 1416 / 400% / 0%
50tps42685 / 5058618 / 1266 / 220% / 0%

并發(fā)較低的場景下,兩種網(wǎng)關(guān)的表現(xiàn)差不多

高并發(fā)場景

配置同樣的線程數(shù)(2000),同樣的請求時間(5分鐘),后端服務(wù)在不同的響應(yīng)時間(休眠時間),對兩種網(wǎng)關(guān)產(chǎn)品進(jìn)行壓力測試,結(jié)果如下:

休眠時間測試樣本Zuul1/Gateway,單位個平均響應(yīng)時間Zuul1/Gateway, 單位毫秒99%響應(yīng)時間小于Zuul1/Gateway,單位毫秒錯誤次數(shù)Zuul1/Gateway,單位個錯誤比例Zuul1/Gateway
休眠100ms294134 / 10593212026 / 5466136 / 1774104 / 00.04% / 0%
休眠300ms101194 / 3999095595 / 148915056 / 16901114 / 01.10% / 0%
休眠600ms51732 / 20126211768 / 297527217 / 32032476 / 04.79% / 0%
休眠1000ms31896 / 12095619359 / 491446259 / 51153598 / 011.28% / 0%

Zuul網(wǎng)關(guān)的tomcat最大線程數(shù)為400,hystrix超時時間為100000。

Gateway在高并發(fā)和后端服務(wù)響應(yīng)慢的場景下比Zuul1的表現(xiàn)要好。

官方性能對比

Spring Cloud Gateway的開發(fā)者提供了benchmark項目用來對比Gateway和Zuul1的性能,官方提供的性能對比結(jié)果如下:

網(wǎng)關(guān)Avg Req/sec/ThreadAvg Latency
Spring Cloud Gateway3.24k6.61ms
Zuul12.09k12.56ms
none11.77k2.09ms

測試工具為wrk,測試時間30秒,線程數(shù)為10,連接數(shù)為200。

從官方的對比結(jié)果來看,Gateway的RPS是Zuul1的1.55倍,平均延遲是Zuul1的一半。

總結(jié)

Zuul1的開源時間很早,Netflix、Riot、攜程、拍拍貸等公司都已經(jīng)在生產(chǎn)環(huán)境中使用,自身經(jīng)受了實踐考驗,是生產(chǎn)級的API網(wǎng)關(guān)產(chǎn)品。

Gateway在2019年離開Spring Cloud孵化器,應(yīng)用于生產(chǎn)的案例少,穩(wěn)定性有待考證。

從性能方面比較,兩種產(chǎn)品在流量小的場景下性能表現(xiàn)差不多;并發(fā)高的場景下Gateway性能要好很多。從開發(fā)方面比較,Zuul1編程模型簡單,易于擴(kuò)展;Gateway編程模型稍難,代碼閱讀難度要比Zuul高不少,擴(kuò)展也稍復(fù)雜一些。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java的LinkedHashSet源碼深入講解

    Java的LinkedHashSet源碼深入講解

    這篇文章主要介紹了Java的LinkedHashSet源碼深入講解,LinkedHashSet是HashSet的子類,而由于HashSet實現(xiàn)了Set接口,因此LinkedHashSet也間接實現(xiàn)了Set類,LinkedHashSet類屬于java.base模塊,java.util包下,需要的朋友可以參考下
    2023-09-09
  • idea編譯時不提示任何錯誤信息的問題及解決

    idea編譯時不提示任何錯誤信息的問題及解決

    這篇文章主要介紹了idea編譯時不提示任何錯誤信息的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Mybatis用注解寫in查詢的實現(xiàn)

    Mybatis用注解寫in查詢的實現(xiàn)

    這篇文章主要介紹了Mybatis用注解寫in查詢的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中的LinkedHashSet解析

    Java中的LinkedHashSet解析

    這篇文章主要介紹了Java中的LinkedHashSet解析,與HashSet不同的是,LinkedHashSet在內(nèi)部使用了一個雙向鏈表來維護(hù)元素的順序,因此它可以保持元素的插入順序,這使得LinkedHashSet在需要保持元素順序的場景下非常有用,需要的朋友可以參考下
    2023-11-11
  • 鴻蒙HarmonyOS App開發(fā)造輪子之自定義圓形圖片組件的實例代碼

    鴻蒙HarmonyOS App開發(fā)造輪子之自定義圓形圖片組件的實例代碼

    這篇文章主要介紹了鴻蒙HarmonyOS App開發(fā)造輪子之自定義圓形圖片組件,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • java自定義攔截器用法實例

    java自定義攔截器用法實例

    這篇文章主要介紹了java自定義攔截器用法,實例分析了java自定義攔截器的實現(xiàn)與使用技巧,需要的朋友可以參考下
    2015-06-06
  • Java實現(xiàn)限定時間CountDownLatch并行場景

    Java實現(xiàn)限定時間CountDownLatch并行場景

    本文將結(jié)合實例代碼,介紹Java實現(xiàn)限定時間CountDownLatch并行場景,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Java的布隆過濾器你了解嗎

    Java的布隆過濾器你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Java的布隆過濾器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • springBoot+webMagic實現(xiàn)網(wǎng)站爬蟲的實例代碼

    springBoot+webMagic實現(xiàn)網(wǎng)站爬蟲的實例代碼

    這篇文章主要介紹了springBoot+webMagic實現(xiàn)網(wǎng)站爬蟲的實例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • java實現(xiàn)賬號登錄時發(fā)送郵件通知

    java實現(xiàn)賬號登錄時發(fā)送郵件通知

    這篇文章主要為大家詳細(xì)介紹了java如何實現(xiàn)在賬號登錄時發(fā)送郵件通知的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09

最新評論

滕州市| 黄梅县| 潼关县| 子长县| 福海县| 文水县| 高密市| 尖扎县| 弥勒县| 金秀| 科尔| 五河县| 昭通市| 汾西县| 平潭县| 禹州市| 万源市| 抚顺市| 鲁甸县| 桦南县| 察隅县| 中卫市| 乐昌市| 龙山县| 仁寿县| 溧水县| 延寿县| 花垣县| 宁都县| 通道| 电白县| 镇雄县| 遂昌县| 响水县| 庆元县| 温州市| 凤阳县| 公主岭市| 子洲县| 景洪市| 大厂|