Zuul 是分布式 springcloud 项目的流量入口,理论上所有进入到微服务系统的请求都要经过 zuul 来过滤和路由。
1、zuul 服务网关的搭建
Jar 包导入
启动类加注解
2、配置详解
配置拦截的 url 和该 url 路由的服务
配置敏感请求头过滤
Zuul 跳转到指定地址
3、路由动态刷新
路由动态刷新其实就是分布式配置中心的思路,就是路由配置规则我们可以在项目启动后, 通过修改远程 GitHub 上的配置,让配置在运行时生效,不需要重启机器。所以就需要加入 配置中心的配置。
配置中心客户端 jar
配置信息
配置动态刷新类
获取路由规则的接口 http://localhost:7070/actuator/routes
4、zuul 过滤器
Zuul 大部分功能都是通过过滤器来实现的,Zuul 定义了 4 种标准的过滤器类型,这些过滤器 类型对应于请求的典型生命周期。
a、pre: 这种过滤器在请求被路由之前调用。可利用这种过滤器实现身份验证、在集群中选 择请求的微服务,记录调试信息等。
b、routing: 这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并 使用 apache httpclient 或 netflix ribbon 请求微服务。
c、post: 这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的 http header、收集统计信息和指标、将响应从微服务发送给客户端等。
e、error: 在其他阶段发送错误时执行该过滤器。