1. 程式人生 > 其它 >sqlserver手工注入

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,可以獲取到資料,從而達到我們需要的效果