ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringCloud Zuul(四)之工作原理

2021-02-12 13:58:48  阅读:129  来源: 互联网

标签:Zuul 请求 自定义 SpringCloud 过滤器 原理 执行 路由


一、筛选器概述

Zuul的中心是一系列过滤器,这些过滤器能够在HTTP请求和响应的路由期间执行一系列操作。

以下是Zuul过滤器的主要特征:

  • 类型:通常定义路由流程中应用过滤器的阶段(尽管它可以是任何自定义字符串)
  • 执行顺序:在类型中应用,定义多个过滤器的执行顺序
  • 条件:执行过滤器所需的条件
  • 动作:如果符合条件,将执行的动作

Zuul提供了一个框架来动态读取,编译和运行这些过滤器。过滤器不直接相互通信-而是通过每个请求唯一的RequestContext共享状态。

过滤器当前以Groovy编写,尽管Zuul支持任何基于JVM的语言。每个筛选器的源代码都写入Zuul服务器上的一组指定目录,并定期轮询这些目录以查找更改。从磁盘读取更新的筛选器,将其动态编译到正在运行的服务器中,并由Zuul为每个后续请求调用。

 

二、筛选器类型

有几种标准过滤器类型对应于请求的典型生命周期:

  • PRE 过滤器在路由到原点之前执行。示例包括请求身份验证,选择原始服务器以及记录调试信息。
  • ROUTING 过滤器处理将请求路由到源。这是使用Apache HttpClient或Netflix Ribbon构建和发送原始HTTP请求的地方。
  • POST 过滤器在将请求路由到源之后执行。示例包括将标准HTTP标头添加到响应,收集统计信息和指标以及将响应从源流传输到客户端。
  • ERROR 在其他阶段之一发生错误时,将执行过滤器。

除了默认的过滤器流程外,Zuul还允许我们创建自定义过滤器类型并明确执行它们。例如,我们有一个自定义STATIC类型,它在Zuul中生成响应,而不是将请求转发到源。为此,我们有一些用例,其中一个是内部端点,其中包含有关特定Zuul实例的调试数据。

 

三、Zuul请求生命周期

zuul-request-lifecycle.png

标签:Zuul,请求,自定义,SpringCloud,过滤器,原理,执行,路由
来源: https://blog.csdn.net/moakun/article/details/113794384

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有