Spring Cloud 进阶--Zuul 基本理论概述

版权声明:本文为博主原创文章,如果觉得写的不错需要转载,在转载时请注明博文出处! https://blog.csdn.net/Hello_World_QWP/article/details/88568602

                                            《 Zuul 基本理论概述 》

前言

本篇文章主要对 Netflix 进行了基本的介绍,包括什么是 Zuul?Zuul 的过滤器?以及 Zuul 2.x 的工作原理?

Zuul 基本理论概述

1、关于 Zuul

Zuul 提供的三大功能:代理 + 路由 + 过滤

Zuul 包含了对请求的 “ 路由 ” 和 “ 过滤 ” 两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验服务聚合等功能的基础 。

在 Spring Cloud 中 Zuul 和 Eureka 进行整合,将 Zuul 自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获得其它微服务列表信息,也即以后的访问微服务都是通过 Zuul 来跳转后获得,特别注意的是,Zuul 服务最终也需要注册进 Eureka的

 

2、Zuul 2.0 工作原理

从更高一个层面上来看,Zuul 2.0 是一个运行预过滤器(入站过滤器)的 Netty 服务器,它运行预过滤器(入站过滤器),然后使用 Netty 客户端代理请求,再在运行后置过滤器(出站过滤器)后返回响应,如下图:

【图一】Zuul 2.x 请求生命周期

与 Zuul 1.x 相比:

 

【图二】Zuul 1.x 请求生命周期

 

3、Zuul 的过滤器

过滤器是 Zuul 业务逻辑的核心部分。 它们有能力执行非常大范围的操作,并且可以在请求-响应生命周期的不同部分运行,如【图一】所示。

  • 入站过滤器:入站过滤器在路由到源之前执行,可以用于身份验证、路由和修饰请求等。
  • 端点过滤器:端点过滤器可用于返回静态响应,否则内置的 ProxyEndpoint 过滤器将把请求路由到原始端。
  • 出站过滤器:出站过滤器在从源获取响应后执行,可用于衡量、修饰用户响应或添加自定义头文件。

还有两种类型的过滤器:同步过滤器异步过滤器。因为我们是在一个事件循环上运行的,所以千万不要阻塞过滤器。如果要阻塞,请在单独线程池中的异步过滤器中进行阻塞,否则可以使用同步过滤器。

 

4、Zuul 源码地址

《 Netflix Zuul 》

 

 

 


 好了,关于 Spring Cloud 进阶--Zuul 基本理论概述 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者: 华    仔
联系作者: who.seek.me@java98k.vip
来        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/88568602
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

没有更多推荐了,返回首页