Zuul基础知识概述
2023-03-27 16:03:22
在在java语言系统中,有微服务微服务是中高级架构的一席之地java程序员具备的技能。Spring Cloud微服务架构是目前最流行的框架之一,其中Zuul作为一个网关,它是每个人学习微服务的重要组成部分。以下是java零基础刚入门的小白们介绍一下Zuul基础知识,为以后深入学习Zuul做好基本准备。
zuulnetflix开源API Gateway服务器, 本质上是web servlet 应用。zul的核心是一系列filters, 它的作用可以类比 FilterServlet框架。
在微服务架构系统中,完整的业务系统会有很多微服务,比如 OrderService、 ProductService、UserService..。如何调用这些服务?统一管理微服务访问、调用、验证。在多个微服务之前,增加一层,实现服务调用、访问控制、服务流量限制等。
前一层在这里(Gateway),就是通常的“网关”。网关的意义是将服务访问从1对N转变为1对1. spring zul作为cloud中的网关。与其他服务Service-1相比,它本身也是一个微服务, Service-2, ... Service-nzul可以感知哪些服务是在线的。同时,通过配置路由规则,请求可以自动转发到指定的后端微服务。对于一些公共预处理(如权限认证、token合法性验证、灰度验证时的部分流量指导等),过滤器可以放置在Zul中(ZuulFilter)这样,后端服务以后就会增加新的服务,zuul 层几乎不需要修改。
你需要知道的Zuul的基本知识和Zuul的原理:Zuul提供了一个动态加载、编译和操作过滤器的框架。 Zuul的过滤器之间没有直接的相互通信,它们通过RequestContext的静态类传输数据。在Requestcontext类中,有Threadlocal变量来记录每个Request需要传输的数据。Zuul过滤器由Grovy编写,这些过滤器文件被放置在Zul 以下是Server上的特定目录, Zuul将定期轮询这些目录,修改后的过滤器将动态加载到Zul Server用于过滤请求。
zuul有四个不同的生命周期:
(1)pre:在zul网关按规定路由到下级服务之前,如果需要预处理请求,可以使用这种类型的过滤器。如:认证权、流量限制等。
(2)route:这种过滤器是zuul路由动作的执行器,是apache 现在也支持OKHTTP在HTTPClient或Ribon构建和发送原始HTTP请求的地方。
(3)post:该过滤器是在终点请求完成、返回结果或异常后执行的filter。如果需要再次处理返回结果,则可以在此过滤中处理逻辑。
(4)error:这种过滤器在整个生命周期内,如果出现异常,可以执行filter,可以进行全局异常处理。
介绍了相信大家对Zuul的基础知识几乎掌握了Zuul的概念、工作原理和生命周期。在本文学习的基础上,可以通过“Zuul构建微服务网关详细说明”本课程学习更多关于Zuul操作和使用的知识,提高其能力水平和价值。