spring|網關-zuul

spring|網關-zuul


今天我們開始討論 Spring Cloud 中的另一個核心技術組件 , API網關 。
什么是 API 網關在微服務架構中 , API 網關也稱為服務網關 。 通常 , 網關能夠起到客戶端與微服務之間的隔離作用 。 隨著業務需求的變化和時間的演進 , 網關背后的各個微服務的劃分和實現可能需要做相應的調整和升級 。
同時 , 如果我們在服務調用過程中添加了這樣一個網關層 , 那么所有的客戶端都是需要通過這個統一的網關來請求到微服務 。 這樣一些非業務功能性需求就可以在網關層進行集中處理 , 比如:請求監控 , 路由管理 , 安全校驗 , 訪問控制 , 日志記錄等等非業務性質的功能 。 而具體的微服務只需要處理自己的業務即可 。
在 Spring Cloud 中 , 針對 API 網關的實現提供了兩種解決方案 。 一種是集成 Netflix 中的 Zuul 網關 , 一種是自研 Spring Cloud Gateway 。 今天先簡單討論下zuul 。
使用zuul首先 , 要想使用zuul , 我們仍然需要先將zuul的依賴引入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
然后在啟動類中 , 添加@EnableZuulProxy注解 , 這個注解表明 , 嵌入該注解的類將自動成為 Zuul 服務器的入口 。 當然這個注解還有著其他的非常強大的功能 , 我們可以基于此注解來使用 Zuul 中的各種內置過濾器實現復雜的服務路由 。
另一方面 , API 網關也可以裂解為該服務的消費者和提供者之間提供了一層反向代理 , 充當著前置負載均衡器的角色 。 所以 , API 網關的定位決定了 Zuul 需要依賴 Ribbon 。 而 Zuul 也可以做到與 Ribbon 完成無縫集成 。
這個時候啟動服務后 , 就可以在eureka中看到我們當前的zuul服務了 。
訪問這個地址 http://localhost:zuul端口號/actuator/routes” , 可以看到路由信息 。 這是有 Zuul 提供的服務路由端點 , 展示了目前在 Zuul 中配置的服務路由信息 。
由于我們的微服務一般都是有很多的服務組成 , 為了方便區分 , 往往都加上了服務前綴 , 我們可以在配置文件中做如下處理:就比如當前項目 , 我們所有的請求統一機上/abc請求前綴 。
zuul:
routes:
【spring|網關-zuul】service: /abc/**

    相關經驗推薦