首先創建網關之前你要有幾個微服務的應用。這個我之前已經創建好了,沒有的先創建一個簡單的消費者,提供者,註冊中心的微服務。
1:通過IDEA 創建 項目,選擇Spring Initializr 點擊 next
2:選擇微服務名稱,路徑,點擊next,
3:這裏選擇下面2個選擇,選擇Eureka Discovery是因爲我們需要讓路由path不是映射具體的url,而是讓它映射到某給具體的服務當中,而具體的url則交給Eureka的服務發現機制去自動維護。
4:點擊生成後pxm文件如下圖所示:
當我們點開zuul依賴時我們會發現zuul核心依賴不僅包含
spring-cloud-netflix-zuul
還包含下面這些重要的依賴
spring-cloud-starter-netflix-hystrix:該依賴用來在網關服務實現對微服務轉發時的保護機制,通過線程隔離和斷路器,防止微服務的故障引發API網關的資源無法釋放,從而影響其他應用的對外服務
spring-cloud-starter-netflix-ribbon:該依賴用來實現在網關服務進行路由轉發時的客戶端負載均衡以及請求重試
5:在啓動類中加入註解
@EnableZuulProxy //開啓Zuul的API網關服務。
@EnableDiscoveryClient //將API註冊到註冊中心中去,同時也讓Zuul獲取的註冊中心的註冊清單,以實現通過path映射服務,在從服務中調用實例來請求轉發完整的路由機制。
這是我的yml文件配置:
當我調用http://localhost:8989/consumer/MallBackground/productList這個路徑的時候,該url的consumer符合consumer的路由規則所用該路徑會被映射到serviceId爲server-consumer的服務的某給實例中去。