Zuul微服务网关详解(非常全面)

Zuul微服务网关详解(非常全面)-mikechen

微服务网关是非常重要的微服务组件,也是大厂经常考察的内容,下面我就全面来详解微服务网关@mikechen

Zuul简介

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

Zuul 本质上是一个Web servlet应用,为微服务架构中的服务提供了统一的访问入口,客户端通过 API 网关访问相关服务。

Zuul微服务网关详解(非常全面)-mikechen

 

为什么需要Zuul?

不同的微服务一般会有不同的服务地址,客户端在访问这些地址的时候,需要记录几十甚至几百个地址,客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度。

而且这样的机制会增加身份认证的难度,每个微服务需要独立认证,微服务网关就应运而生。

微服务网关介于客户端与服务器之间的中间层,是系统对外的唯一入口:所有的外部请求都会先经过微服务网关,客户端只需要与网关交互,只知道一个网关地址即可。

 

Zuul的作用

Zuul就是微服务网关的一种实现,Zuul作用:类似我们小区的保安,用于保护基本的安全等的作用。

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

 

Zuul工作原理

Zuul 本质上就是一个Web Servlet,本质上就是一系列的filter过滤器。

所以Zuul工作原理:就是基于ZuulFilter的链式调用请求机制。

Zuul组件的核心就是是一系列的过滤器,这些过滤器可以完成如下的功能,如下图所示,这是Zuul的整体架构图。

Zuul微服务网关详解(非常全面)-mikechen

  • 身份认证和安全: 识别每一个资源的验证要求,并拒绝那些不符的请求;
  • 动态路由:动态将请求路由到不同后端集群;
  • 压力测试:逐渐增加指向集群的流量,以了解性能
  • 负载分配:为每一种负载类型分配对应容量,并弃用超出限定值的请求;
  • 静态响应处理:边缘位置进行响应,避免转发到内部集群;

 

陈睿mikechen

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

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

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

评论交流
    说说你的看法