动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Zuul基础知识概述

08-27 17:25 76浏览
举报 T字号
  • 大字
  • 中字
  • 小字

java语言体系中,有微服务架构的一席之地,微服务是中高级java程序员所具备的技能。Spring Cloud是目前最流行的进行微服务架构的框架之一,其中Zuul作为网关,是大家学习微服务的重要一项内容,下面为java零基础刚入门不久的小白们介绍一下Zuul基础知识,为后面深入学习Zuul做一个基础性的准备。

zuulnetflix开源的一个API Gateway服务器, 本质上是一个web servlet 应用。zuul的核心是一系列filters, 其作用可以类比 Servlet框架的Filter。

微服务架构体系中,完整的业务系统会有很多的微服务,例如 OrderService、 ProductService、UserService...。怎么能完成这些服务的调用。对微服务的访问统一管理调用验证呢。多个微服务之前增加一层,实现服务调用,访问控制,服务限流等等

这里的前面一层(Gateway),就是通常的“网关”。网关的意义是把服务的访问由1对N变为1对1. spring cloud中用zuul作为网关。自身也是一个微服务,跟其它服务Service-1, Service-2, ... Service-N一样zuul能感知到哪些服务在线,同时通过配置路由规则,可以将请求自动转发到指定的后端微服务上,对于一些公用的预处理(比如:权限认证,token合法性校验,灰度验证时部分流量引导之类),可以放在Zuul的过滤器(ZuulFilter)处理,这样后端服务以后新增了服务,zuul 层几乎不用修改。

需要大家了解的Zuul基础知识还有Zuul的原理:Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行。 Zuul的过滤器之间没有直接的相互通信,他们之间通过一个RequestContext的静态类来进行数据传递。RequestContext类中有ThreadLocal变量来记录每个Request所需要传递的数据。Zuul的过滤器是由Groovy写成,这些过滤器文件被放在Zuul Server上的特定目录下面, Zuul会定期轮询这些目录,修改过的过滤器会动态的加载到Zuul Server中以便过滤请求使用。

zuul一共有4种不同的生命周期:

1pre:在zuul网关按照规则路由到下级服务之前执行,如果需要对请求进行预处理,可以使用这种类型的过滤器。如:认证鉴权,限流等。

2route:这种过滤器是zuul路由动作的执行者,是Apache HttpClient或Ribbon构建和发送原始HTTP请求的地方,现在也支持OKHTTP。

3post:这种过滤器是在端点请求完毕,返回结果或者发生异常后执行的filter。如果需要对返回的结果进行再次处理,可以在这种过滤中处理逻辑。

4error:这种过滤器是在整个生命周期内,如果发生异常,就执行该filter,可以做全局异常处理。

介绍了Zuul的概念、工作原理和生命周期,相信大家对Zuul基础知识掌握的差不多了,在这篇文章的学习基础上,可以通过“Zuul构建微服务网关详解”的课程来学习更多的Zuul操作使用方面的知识,提升自身能力水平与价值。

0人推荐
共同学习,写下你的评论
0条评论
一蓑烟雨
程序员一蓑烟雨

6篇文章贡献19494字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

五分钟读懂UML类图

江湖人称小李白12-10 10:41

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消