sqlserver手工注入
1.簡介
-
Zuul包含了對請求的路由和過濾兩個最主要的功能
-
其中路由功能負責將外部請求轉發到具體的微服務例項上,是實現外部訪問統一入口的基礎,而過濾功能則負責對請求的處理過程進行干預,是實現請求校驗,服務聚合等功能的基礎。Zuul和Eureka進行整合,將Zuul自身註冊為Eureka服務治理下的應用,同時從Eureka中獲得其他微服務的訊息,也即以後的訪問微服務都是通過Zuul跳轉後獲得
注意:Zuul服務最終還是會註冊進Eureka
提供:代理+路由+過濾三大功能
2.Zuul的作用
-
路由
-
過濾
3.Zuul整合Eureka
前提:基於負載均衡及Ribbon這一邊文章中的Ribbon實戰專案的基礎上新增內容
- 建立一個Modules,名稱為zuul-9527,匯入zuul和eureka以及actuator的依賴
<dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--zuul--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> <version>1.4.6.RELEASE</version> </dependency> </dependencies>
- 編寫配置檔案
server.port=9527 spring.application.name=zuul-9527 #eureka配置 #不在eureka中註冊自己 eureka.client.register-with-eureka=true #服務地址 eureka.client.service-url.defaultZone=http://localhost:7001/eureka/ #例項的id eureka.instance.instance-id=springcloud-zuul-9527 #暴露例項的ip地址 eureka.instance.prefer-ip-address=true #配置info的資訊 info.app.name=zuul-9527 info.company.name=com.zixin.springcloud
- 在src/main/java目錄下建立com.zixin.springcloud包,並在該包下建立啟動類Zuul_9527,同時新增
@EnableZuulProxy
註解,用於開啟路由
package com.zixin.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
//開啟路由
@EnableZuulProxy
@SpringBootApplication
public class Zuul_9527 {
public static void main(String[] args) {
SpringApplication.run(Zuul_9527.class, args);
}
}
-
執行provider-dept-8001、eureka-server-7001以及zuul-9527專案,訪問
http://localhost:7001/
,可以看到兩個服務都註冊到eureka註冊中心上,如下圖所示 -
正常訪問
http://localhost:8001/provider/dept/findDeptById?deptno=1
,可以訪問到資料 -
訪問
http://localhost:9527/provider-dept/provider/dept/findDeptById?deptno=1
,也可以訪問到資料 -
向配置檔案application.properties中新增zuul-router的配置資訊
#自定義服務id,zixin-router只是給路由一個名稱,可以隨便命名
zuul.routes.zixin-router.service-id=provider-dept
#zixin-router對應的路徑
zuul.routes.zixin-path=/diy-router/**
-
重新執行zuul-9527專案,訪問
http://localhost:9527/zixin-router/provider/dept/findDeptById?deptno=1
,可以獲取到資料 -
但此時通過訪問
http://localhost:9527/provider-dept/provider/dept/findDeptById?deptno=1
,也同樣可以拿到資料,這是不希望的,這裡在配置檔案中配置忽略代理該服務即可
#忽略代理provider-dept服務
zuul.ignored-services=provider-dept
- 重新執行zuul-9527專案,訪問
http://localhost:9527/provider-dept/provider/dept/findDeptById?deptno=1
,獲取不到資料
訪問http://localhost:9527/zixin-router/provider/dept/findDeptById?deptno=1
,可以獲取到資料,從而達到我們需要的效果