Zull网关原理详解(3大核心原理)

Zull网关原理详解(3大核心原理)-mikechen

Zuul简介

Zuul 是Netflix开源的一个API Gateway 服务器, 是 Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的 API 网关使用,支持动态路由与过滤功能。

Zuul 本质上是一个Web servlet应用,为微服务架构中的服务提供了统一的访问入口。

Zuul它实现了请求路由、负载均衡、校验过滤、服务容错、服务聚合等功能。

Zull网关原理详解(3大核心原理)-mikechen

 

Zuul工作原理

Zuul是通过Servlet来实现的,Zuul通过自定义的ZuulServlet,类似于Spring MVC的DispatcherServlet来对请求进行控制。

Zuul组件的核心就是是一系列的过滤器,这些过滤器可以完成如下的功能。

Zull网关原理详解(3大核心原理)-mikechen

所以要搞清楚Zuul的工作原理,重点就是搞清楚Zull Filter都具体做了哪些事情,下面mikechen接着谈Zull Filter的作用于实现。

 

Zuul Filter

Zuul大部分功能都是通过Filter过滤器来实现的,Zuul中定义了四种标准过滤器类型,如下:

1.PRE

这种过滤器在请求被路由之前调用:可实现身份验证、记录调试信息等。

2.ROUTING

这种过滤器将请求路由到微服务:这种过滤器用于构建发送给微服务的请求。

3.POST

这种过滤器在路由到微服务以后执行:这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。

4.ERROR

在其他阶段发生错误时执行该过滤器,除了默认的过滤器类型,Zuul还允许我们创建自定义的过滤器类型。

每一种处理器具体细分多种,如下图所示:

Zull网关原理详解(3大核心原理)-mikechen

需要记住3个常见的Route过滤器, 分别是:

  1. RibbonXXXFilter : 路由到服务;
  2. SimpleHostRoutingFilter : 路由到URL地址;
  3. SendForwardFilter : 转向Filter自己。

 

Zuul 生命周期

当一个请求进来时,会先进入 pre 过滤器,在 pre 过滤器执行完后,接着就到了 routing 过滤器中,开始路由到具体的服务中,错误的情况会被错误过滤器拦截。

Zuul 请求生命周期,如下图所示:

Zull网关原理详解(3大核心原理)-mikechen

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法