spring cloud学习 - zuul

Zuul的概念

Zuul作为SpringCoud系列的API网关,在一个微服务集群中,Zuul担任的角色既是关口,有一夫当关,万夫莫开的气势,同时也是代理门户。作为关口,它是集群中提供的唯一的外部访问的通道,任何请求,必须通过网关,才能访问集群内部的服务。在访问Zuul时,可以对其进行安全认证、限流熔断等操作,请求处理完毕时,能够完成日志监控等服务。

Zuul请求生命周期

Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行。过滤器直接按没有直接通信,他们通过一个RequestContext的静态类来进行数据传递的。RequestContext类中有ThreadLocal变量来记录每个Request所需要传递的数据。

 

 

一个请求到达网关后的过程:

1、通过所有的前置(pre)过滤器;

2、通过所有的路由(route)过滤器;

3、通过所有的后置(post)过滤器;

4、如果在过程中发生异常,则跳转到所有的错误(error)过滤器中。如上图所示。

标准过滤器类型:

1、PRE:在请求中被路由到源服务器前要执行的过滤器,主要可以用来做认证、请求转发、增加请求参数等。

2、ROUTE:处理将请求发送到源服务器的过滤器

3、POST:在响应从源服务器返回时要被执行的过滤器,可以对响应增加HTTP头,收集统计和度量,将响应以流的方式发送客户端等。

4、ERROR:在上述阶段中出现错误要执行的过滤器。

Zuul架构:

 

绿色:过滤器管理模块

粉色:过滤器加载模块

蓝色:核心过滤器运行时模块

从架构上可以看出,Zuul是一些列过滤器在运行,从而起到鉴权、路由、日志统计、限流等功能。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值