springcloud(七)zuul 路由網關

1,zuul

Zuul包含了對請求的路由和過濾兩個最主要的功能:
其中路由功能負責將外部請求轉發到具體的微服務實例上,是實現外部訪問統一入口的基礎而過濾器功能則負責對請求的處理過程進行干預,是實現請求校驗、服務聚合等功能的基礎.Zuul和Eureka進行整合,將Zuul自身註冊爲Eureka服務治理下的應用,同時從Eureka中獲得其他微服務的消息,也即以後的訪問微服務都是通過Zuul跳轉後獲得。

注意:Zuul服務最終還是會註冊進Eureka

提供=代理+路由+過濾三大功能

2,具體使用

2.1 新建Module模塊 microservice-zuul-gateway-9527

pom.xml

   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-zuul</artifactId>
   </dependency>

application.yml

server:
  port: 9527

spring:
  application:
    name: microservicecloud-zuul-gateway

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true

zuul:
  prefix: /testdemo
  ignored-services: "*"
  routes:
    mydept.serviceId: microservice-config-provider-dept
    mydept.path: /mydept/**

info:
  app.name: gateway-9527
  company.name: www.testdemo.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$
主啓動類
@SpringBootApplication
@EnableZuulProxy
public class Zuul_9527_StartSpringCloudApp {
    public static void main(String[] args)
    {
        SpringApplication.run(Zuul_9527_StartSpringCloudApp.class, args);
    }

}

2.2 測試

啓動Eureka Server(microservice-eureka-7001)
啓動服務配置中心(microservice-config-center-3344)【從 GitHub 獲取配置信息 】
啓動服務提供者(microservice-provider-dept-8001)【從服務配置中心獲取信息】
啓動服務路由網關(microservice-zuul-gateway-9527)

不用路由:http://localhost:8001/dept/get/2
使用路由:http://myzuul.com:9527/microservicecloud-dept/dept/get/2

2.4 路由訪問映射規則

代理名稱

before
http://myzuul.com:9527/microservice-dept/dept/get/2

application.yml

zuul: 
  routes: 
    mydept.serviceId: microservice-dept
    mydept.path: /mydept/**  # 代理名稱

after
http://myzuul.com:9527/mydept/dept/get/2

忽略原真實服務名

application.yml

zuul: 
  ignored-services: "*"  # 忽略所有微服務,即所有訪問都要通過zuul
  routes: 
    mydept.serviceId: microservice-dept
    mydept.path: /mydept/**

設置統一公共前綴

application.yml

zuul: 
  prefix: /atguigu  # 設置前綴
  ignored-services: "*"
  routes: 
    mydept.serviceId: microservice-dept
    mydept.path: /mydept/**

最終yml

zuul: 
  prefix: /atguigu
  ignored-services: "*"
  routes: 
    mydept.serviceId:microservicecloud-dept
    mydept.path: /mydept/**

http://myzuul.com:9527/atguigu/mydept/dept/get/1

3,參考資料

http://www.chilangedu.com/sectionq/1910610451/E45F6ED4FAB77F58

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章