Zuul路由网关简介及基本使用
1、Zull简介
Zuul是Netflix OSS中的一员,是个基于 JVM 路由和服务端的负载均衡器。提供路由、监控、弹性、安全等方面的服务框架。Zuul能够与Eureka、Ribbon、Hystrix等组件配合使用。
Zuul的核心是过滤器,通过这些过滤器我们可以扩展出很多功能,比如:
- 动态路由:动态地将客户端的请求路由到后端不同的服务,做一些逻辑处理,比如聚合多个服务的数据返回。
- 请求监控:可以对整个系统的请求进行监控,记录详细的请求响应日志,可以实时统计出当前系统的访问量以及监控状态。
- 认证鉴权:对每一个访问的请求做认证,拒绝非法请求,保护好后端的服务。
- 压力测试:压力测试是一项很重要的工作,像一些电商公司需要模拟更多真实的用户并发量来保证重大活动时系统的稳定。通过Zuul可以动态地将请求转发到后端服务的集群中,还可以识别测试流量和真实流量从而做一些特殊处理。
- 灰度分布:灰度分布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题、以保证其影响度。
**2.为什么学习Zuul呢 **
因为安全性 这是springcloud提供的安全机制
3.转变下思想
1.在我们前面的学习过程中我们讲过ServiceConsumer就是消费者 ServiceProvider就是生产者
2.那么在学习我们Zuul的时候我们需要转变下思维
3.ServiceConsumer不紧紧是消费者它也是一个生产者
4.为什么这么讲呢
- 现在有一个项目按照文档划分出来是6个模块
- 有服务模块有用户模块等等等
- 按照微服务划分为6组生产者
- 也就是
- ServiceProvider提供用户服务
- ServiceConsumer提供消费服务
4.那么在代码中怎么解释呢
在我们服务模块中经常会调用别的业务模块接口或者方法吧
那么在我们的微服务架构里面我们就认定
谁调用了其他微服务里面的方法谁就是消费者
5.那么微服务之间如何进行通信呢
就是通过注册中心
6.这个就像一个盒子一样
那么外界如何查看我们盒子里面的内容呢
7.就是通过Zuul这个网关
图画的有点丑见谅
官方文档
这里的API 路由网关服务 由Zuul实现,主要就是对外提供服务接口的时候,起到了请求的路由和过滤作用,也因此能够隐藏内部服务的接口细节,从来有利于保护系统的安全性;
我们新建一个module microservice-zuul-3001
这里我们的zuul也注册到eureka服务里,端口3001;
<!--zuul网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
完整pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>testSpringcloud</artifactId>
<groupId>com.zhuchenxi</groupId>
<version>