Zuul 网关 zuul 是 spring cloud 的一个推荐组件
https://github.com/Netflix/zuul

网关的作用

可以实现负载均衡、路由转发、日志、权限控制、监控等。

网关与过滤器区别

网关是拦截所有服务器请求进行控制 过滤器拦截某单个服务器请求进行控制

Nginx 与 Zuul 的区别?

Nginx 是采用服务器负载均衡进行转发 Zuul 依赖 Ribbon 和 eureka 实现本地负载均衡转发 相对来说 Nginx 功能比 Zuul 功能更加强大,能够整合其他语言比如 lua 脚本实现 强大的功能,同时 Nginx 可以更好的抗高并发,Zuul 网关适用于请求过滤和拦截等

整合Zuul

1、引入pom依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent> <!-- 管理依赖 --> <dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Finchley.M7</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
</dependencies>
</dependencyManagement> <dependencies>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency> <!-- SpringBoot 整合 eureka 客户端 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies> <!-- 注意: 这里必须要添加, 否者各种依赖有问题 --> <repositories>
<repository>
    <id>spring-milestones</id>
    <name>Spring Milestones</name>
    <url>https://repo.spring.io/libs-milestone</url>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
</repository>
</repositories>

2、添加application.yml配置文件

###eureka注册中心
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8080/eureka/
###网关端口号建议使用80
server:
  port: 80
###网关名称
spring:
  application:
    name: service-zuul
### 配置网关反向代理    
zuul:
  routes:
    api-a:
     ### 以 /api-member/访问转发到会员服务
      path: /api-member/**
      serviceId: oracle-member
    api-b:
        ### 以 /api-order/访问转发到订单服务
      path: /api-order/**
      serviceId: oracle-order

3、去启动类添加注解

@EnableZuulProxy

之后启动