Spring Cloud Zuul網關(快速搭建)


zuul 是netflix開源的一個API Gateway 服務器, 本質上是一個web servlet應用。
在雲平台上提供動態路由,監控,彈性,安全等邊緣服務的框架。相當於是設備和 Netflix 流應用的 Web 網站后端所有請求的前門。主要功能是路由轉發和過濾器。

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

驗證與安全保障: 識別面向各類資源的驗證要求並拒絕那些與要求不符的請求。
審查與監控: 在邊緣位置追蹤有意義數據及統計結果,從而為我們帶來准確的生產狀態結論。
動態路由: 以動態方式根據需要將請求路由至不同后端集群處。
壓力測試: 逐漸增加指向集群的負載流量,從而計算性能水平。
負載分配: 為每一種負載類型分配對應容量,並棄用超出限定值的請求。
靜態響應處理: 在邊緣位置直接建立部分響應,從而避免其流入內部集群。
多區域彈性: 跨越AWS區域進行請求路由,旨在實現ELB使用多樣化並保證邊緣位置與使用者盡可能接近。
除此之外,Netflix公司還利用Zuul的功能通過金絲雀版本實現精確路由與壓力測試。

Zuul中定義了四種標准過濾器類型,這些過濾器類型對應於請求的典型生命周期。

PRE:這種過濾器在請求被路由之前調用。我們可利用這種過濾器實現身份驗證、在集群中選擇請求的微服務、記錄調試信息等。
ROUTING:這種過濾器將請求路由到微服務。這種過濾器用於構建發送給微服務的請求,並使用Apache HttpClient或Netfilx Ribbon請求微服務。
POST:這種過濾器在路由到微服務以后執行。這種過濾器可用來為響應添加標准的HTTP Header、收集統計信息和指標、將響應從微服務發送給客戶端等。
ERROR:在其他階段發生錯誤時執行該過濾器。
搭建Zuul
1、New Model -> Spring Initializer -> Next -> Next -> Web(Web)、Cloud Discovery(Eureka Discovery)、Cloud Routing(Zuul)-> Next ->Finish

2、在ZuulApplication.class中新增@EnableZuulProx、@EnableEurekaClient 這兩個注解


3、application.yml 文件:

 

server:
   port: 6666

spring:
  application:
    name: client-zuul

eureka:
  client:
    service-url:
        defaultZone: http://peer1:1122/eureka/
#      這里寫一個都行,因為 Eureka Server 是相互注冊,高可用注冊中心
zuul:
  routes:
    api-a:
      path: /api-a/**
      serviceId: client-ribbon
    api-b:
      path: /api-b/**
      serviceId: client-feign

 

4、依次啟動 注冊中心、服務提供者(eureka-client)、服務消費者(client-ribbon、client-feign)、網關(client-zuul)

 

 

 

 

5、注意注意,最后一張圖片,zuul無法訪問!!!
再換一個瀏覽器訪問試試:

 

原來是這個端口被常用其他用途,所以這個端口號不行。

6、在application.yml文件中改一下端口號(以防都被重,直接改成9000了):

 



原文:https://blog.csdn.net/true1cc/article/details/81110753


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM