Zuul 网关 zuul 是 spring cloud 的一个推荐组件 https://github.com/Netflix/zuul
网关的作用
可以实现负载均衡、路由转发、日志、权限控制、监控等。
网关与过滤器区别
网关是拦截所有服务器请求进行控制 过滤器拦截某单个服务器请求进行控制
Nginx 与 Zuul 的区别?
Nginx 是采用服务器负载均衡进行转发 Zuul 依赖 Ribbon 和 eureka 实现本地负载均衡转发 相对来说 Nginx 功能比 Zuul 功能更加强大,能够整合其他语言比如 lua 脚本实现 强大的功能,同时 Nginx 可以更好的抗高并发,Zuul 网关适用于请求过滤和拦截等
整合Zuul
1、引入pom依赖
代码语言:javascript复制<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配置文件
代码语言:javascript复制###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、去启动类添加注解
代码语言:javascript复制@EnableZuulProxy
之后启动