文章目錄
- 概述
- 什么是Zuul?
- Zuul 能干嘛?
- Zuul入門案例
- pom依賴
- application.yml
- 啟動類
- 隱藏真實路徑
概述
什么是Zuul?
Zuul包含了對請求的路由(用來跳轉的)和過濾兩個最主要功能:
- 其中路由功能負責將外部請求轉發到具體的微服務實例上,是實現外部訪問統一入口的基礎。
- 而過濾器功能則負責對請求的處理過程進行干預,是實現請求校驗,服務聚合等功能的基礎。
Zuul和Eureka進行整合,將Zuul自身注冊為Eureka服務治理下的應用,同時從Eureka中獲得其他服務的消息,也即以后的訪問微服務都是通過Zuul跳轉后獲得。
注意:Zuul 服務最終還是會注冊進 Eureka
提供:代理 + 路由 + 過濾 三大功能!
Zuul 能干嘛?
- 路由
- 過濾
官方文檔:https://github.com/Netflix/zuul/
Zuul入門案例
新建springcloud-zuul模塊,并導入依賴
pom依賴
<dependencies><!--導入zuul依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zuul</artifactId><version>1.4.6.RELEASE</version></dependency><!--Hystrix依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId><version>1.4.6.RELEASE</version></dependency><!--dashboard依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix-dashboar</artifactId><version>1.4.6.RELEASE</version></dependency><!--Ribbon--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId><version>1.4.6.RELEASE</version></dependency><!--Eureka--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId><version>1.4.6.RELEASE</version></dependency><!--實體類+web--><dependency><groupId>com.haust</groupId><artifactId>springcloud-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--熱部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>
</dependencies>
application.yml
server:port: 9527
spring:application:name: springcloud-zuul #微服務名稱
# eureka 注冊中心配置
eureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/instance: #實例的idinstance-id: zuul9527.comprefer-ip-address: true # 顯示ip
info:app.name: qf.springcloud # 項目名稱company.name: 深圳大學 # 公司名稱
啟動類
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;/*** @Auther: qf* @Date: 2025/05/20/20:53* @Description: Zull路由網關主啟動類*/
@SpringBootApplication
@EnableZuulProxy // 開啟Zuul
public class ZuulApplication_9527 {public static void main(String[] args) {SpringApplication.run(ZuulApplication_9527.class,args);}
}
啟動項目,輸入http://127.0.0.1:9527/test-provider-dept/dept/get/1
訪問可能需要等待
隱藏真實路徑
相關配置
# zull 路由網關配置
zuul:# 路由相關配置routes:mydept.serviceId: test-provider-dept # eureka注冊中心的服務提供方路由名稱mydept.path: /mydept/** # 將eureka注冊中心的服務提供方路由名稱 改為自定義路由名稱
# ignored-services: springcloud-provider-dept # 忽略指定服務名稱# 不能再使用這個路徑訪問了,*: 忽略,隱藏全部的服務名稱~ignored-services: "*"# 設置公共的前綴prefix: /qfcloud
訪問服務接口
http://127.0.0.1:9527/qfcloud/mydept/dept/get/1
相關文章:
Spring Cloud Netflix學習筆記01
Spring Cloud Netflix學習筆記02-Eureka
Spring Cloud Netflix學習筆記03-Ribbon
Spring Cloud Netflix學習筆記04-Feign
Spring Cloud Netflix學習筆記05-Hystrix
Spring Cloud Netflix學習筆記06-Zuul
Spring Cloud Netflix學習筆記07-Spring Cloud Config