SpringCloud:Zuul(路由)

1、Zuul路由

(1)概念

核心:路由和过滤
  路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础过滤器功能负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。

2、Zuul的路由

(1)创建模块(myspringcloud-zuul-gateway-9527)

(2)核心依赖

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

(3)创建配置文件

server:
  port: 9527

spring:
  application:
    name: myspringcloud-zuul-gateway

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

info:
  app.name: zhb-myspringcloud-zuul
  company.name: zhai
  build.artifactId: $project.artifactId$
  build.version: $project.version$

(4)在计算机的hosts文件添加映射

127.0.0.1  myzuul.com

(5)在模块的启动类中添加注解

@EnableZuulProxy

(6)测试

3、Zuul的路由访问映射

(1)添加配置

zuul:
  routes:
    mydept.serviceId: provider
    mydept.path: /mydept/**
  ignored-services: provider

serviceId是为服务的名称,path是虚拟的服务名称,设定完这两个并不能实现隐藏真正的服务名称(serviceId)的目的,需要设置ignored-services避免能够通过真是的微服务名称进行访问

此时访问的地址是:

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

(2)设置前缀

zuul:
  prefix: /zhai
  routes:
    my.serviceId: provider
    my.path: /mydept/**
  ignored-services: provider
http://myzuul.com:9527/zhai/mydept/dept/get/2
原文地址:https://www.cnblogs.com/zhai1997/p/14233016.html