java B2B2C 源碼 多級分銷springmvc mybatis多租戶電子商城系統---服務網關zuul

  1. Zuul是什麼

微服務場景下,每一個微服務對外暴露了一組細粒度的服務。客戶端的請求可能會涉及到一串的服務調用,如果將這些微服務都暴露給客戶端,那麼會增加客戶端代碼的複雜度。

參考GOF設計模式中的Facade模式,將細粒度的服務組合起來提供一個粗粒度的服務,所有請求都導入一個統一的入口,那麼整個服務只需要暴露一個api,對外屏蔽了服務端的實現細節,也減少了客戶端與服務器的網絡調用次數。這就是api gateway。

有了api gateway之後,一些與業務關係並不大的通用處理邏輯可以從api gateway中剝離出來,api gateway僅僅負責服務的編排與結果的組裝。

Spring Cloud Netflix的Zuul組件可以做反向代理的功能,通過路由尋址將請求轉發到後端的粗粒度服務上,並做一些通用的邏輯處理。

2.Zuul 能做什麼

Zuul可以通過加載動態過濾機制,從而實現以下各項功能:

驗證與安全保障: 識別面向各類資源的驗證要求並拒絕那些與要求不符的請求。

審查與監控: 在邊緣位置追蹤有意義數據及統計結果,從而爲我們帶來準確的生產狀態結論。

動態路由: 以動態方式根據需要將請求路由至不同後端集羣處。

壓力測試: 逐漸增加指向集羣的負載流量,從而計算性能水平。

負載分配: 爲每一種負載類型分配對應容量,並棄用超出限定值的請求。

靜態響應處理: 在邊緣位置直接建立部分響應,從而避免其流入內部集羣。

多區域彈性: 跨越AWS區域進行請求路由,旨在實現ELB使用多樣化並保證邊緣位置與使用者儘可能接近。

3.怎麼使用Zuul
Spring Cloud Zuul路由是微服務架構的不可或缺的一部分,提供動態路由,監控,彈性,安全等的邊緣服務。Zuul是Netflix出品的一個基於JVM路由和服務端的負載均衡器。

下面我們通過代碼來了解Zuul是如何工作的

1.簡單使用

1、添加依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>

引入spring-cloud-starter-zuul包

2、配置文件

spring.application.name=gateway-service-zuul
server.port=8888
#這裏的配置表示,訪問/it/** 直接重定向到http://www.ityouknow.com/**
zuul.routes.baidu.path=/it/**
zuul.routes.baidu.url=http://www.ityouknow.com/
 ```
3、啓動類

@SpringBootApplication
@EnableZuulProxy
public class GatewayServiceZuulApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(GatewayServiceZuulApplication.class, args);
    }
}

啓動類添加@EnableZuulProxy,支持網關路由。

史上最簡單的zuul案例就配置完了。

 [java B2B2C 源碼 多級分銷springmvc mybatis多租戶電子商城系統](https://2147775633.iteye.com/blog/2434341)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章