spring cloud 閘道器服務
阿新 • • 發佈:2019-10-29
微服務 閘道器服務
閘道器服務是微服務體系裡面重要的一環。
微服務體系內,各個服務之間都會有通用的功能比如說:鑑權、安全、監控、日誌、服務排程轉發。這些都是可以單獨抽象出來做一個服務來處理。所以微服務閘道器應運而生。其主要作用作為微服務體系裡面流量的唯一入口去做一些功能的實現。
微服務的閘道器擔當的主要職責可以分為倆種
- 主要業務功能抽取,鑑權、安全、服務排程、限流、熔斷等
- 非主要的業務功能抽取,監控、日誌、快取、黑白名單、埋點等
Spring Cloud 閘道器服務
現在市面主要流行的倆種
- Netflix Zuul 1.0
- 由Netflix開源的API閘道器專案,這個服務並不是Netflix 整合到spring 微服務體系內。而是spring將zuul整合在spring-cloud中使用而已。目前spring不打算整合zuul2.x的整合。
- Spring Cloud Gataway
- spring-cloud-Gateway是spring旗下spring-cloud的一個子專案。還有一種說法是因為zuul2連續跳票和zuul1的效能表現不是很理想,所以催生了spring孵化Gateway專案。
前面介紹了倆種閘道器服務由來,接下來進行一下效能的對比我不打算在做壓力測試方向更多的介紹,博主沒有做壓力測試的條件。我講推薦一篇博文進行了壓測的詳細的對比傳送門
Spring Cloud Gateway
- 是基於WebFlux 開發的。WebFlux 模組的名稱是 spring-webflux,名稱中的 Flux 來源於 Reactor 中的類 Flux。Spring webflux 有一個全新的非堵塞的函式式 Reactive Web 框架,可以用來構建非同步的、非堵塞的、事件驅動的服務,在伸縮性方面表現非常好。使用非阻塞API。 Websockets得到支援,Spring整合
Netflix Zuul 1.0
- 底層是基於servlet,Zuul處理的是http請求Zuul的抽象寫的非常簡單易懂,易於擴充套件,易於debug。提供了兩種特殊的抽象類,使用者使用起來,比較靈活。沒有提供非同步支援。流控等均由hystrix支援
備註
其實Netflix Zuul 1.0 調優過後的效能指標並不見得比Spring Cloud Gateway 差基本上也符合理論上的資料。
只不過2.0之後。spring 沒有打算整合它。如果現有系統已經使用的zuul 服務。不需要非得升級zuul 升級到Spring Cloud Gateway。如果公司專案。希望Websockets得到支援就可以考慮是否升級。
我打算將倆種閘道器都實現。下一篇文章是Zuul 閘道器的實現。裡面會講述一些關鍵點。寫完zuul閘道器後。再去寫股關於Spring Cloud Gateway的 實現。
如何喜歡可以關注分享本公眾號。
版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。轉載請附帶公眾號二維