一、筛选器概述

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请求生命周期

SpringCloud Zuul(四)之工作原理相关推荐

  1. Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理

    文章目录 一.前言 一.Git基本理论(核心) 1.1工作区 1.2工作流程 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 参考视频『Gi ...

  2. Nginx系列(四)--工作原理

    上篇文章介绍了Nginx框架的设计之管理进程以及多个工作进程的设计,master进程用来管理通过fork子进程与子进程通信,子进程通过处理进程信号接到master的通信去处理请求. Nginx工作原理 ...

  3. NameNode与DataNode的工作原理剖析

    NameNode与DataNode的工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS写数据流程 1>.客户端通过Distributed FileSys ...

  4. 基于query语句解析mysql工作原理

    一.前言 在之前的博文中己经介绍过了mysql的编译安装,那么这次将介绍一下从一条query语句执行过程来剖析mysql是如何工作的. 二.简介(来源于维基百科) MySQL(官方发音为/maskju ...

  5. namenode和datanode工作机制_NameNode与DataNode的工作原理剖析

    NameNode与DataNode的工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS写数据流程 1>.客户端通过Distributed FileSys ...

  6. 详解Kafka应用场景及工作原理

    一.概述 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的发布/订阅式分布式消息系统 二.特性 持久 ...

  7. tcp当主动发出syn_一文读懂TCP四次挥手工作原理及面试常见问题汇总

    简述 本文主要介绍TCP四次挥手的工作原理,以及在面试中常见的问题. 字段含义 seq序号:Sequence Number,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行 ...

  8. 第十四节 OSAL工作原理

    第十四节  OSAL工作原理     蓝牙为了实现同多个设备相连,或实现多功能,也实现了功能扩充,这就产生了调度问题.因为,虽然软件和协议栈可扩充,但终究最底层的执行部门只有一个.为了实现多事件和多任 ...

  9. plc控制可调节阀流程图_工业电气控制及PLC技术第四章可编程控制器及其工作原理ppt课件...

    PPT内容 这是工业电气控制及PLC技术第四章可编程控制器及其工作原理ppt课件下载,主要介绍了可编程控制器的产生和发展:可编程控制器的用途及特点:PLC的硬件组成:PLC的软件及应用程序编程语言:可 ...

  10. 曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作

    一.前言 上篇文章我们学习了Selenium页面操作原理及如何高效的进行元素定位 那Selenium的工作原理又是什么?是如何驱动浏览器的呢?这篇文章为你讲解Selenium工作原理及Webdrive ...

最新文章

  1. python计算汽车的平均油耗_汽车行车电脑中的平均油耗是按哪个行驶里程计算的?...
  2. linux知识记录20192022
  3. biginteger判断相等_java biginteger怎么比较大小
  4. scrum流程 规划 冲刺_Scrum –困难的部分2:更快地冲刺
  5. Python练习:阶乘累计求和
  6. easyui页内跳转
  7. mac osx 快捷键
  8. ppsspp模拟java按键_ppsspp 手柄按键映射 北通 BTP
  9. window10运行不了1stopt_1stopt运行不了,到底为什么?
  10. 定性与定量的单变量正态性检验
  11. 产品经理为什么比程序员工资要高?百度员工:因为他是产品灵魂
  12. linux中,ls -l命令显示的total的含义。
  13. 【计网】2.2.4 Web缓存/代理服务器
  14. 9本4月程序员新书,Python书就占了6本
  15. Java 版spark Streaming 维护kafka 的偏移量
  16. Work20230417
  17. 现代大学英语精读第二版(第四册)学习笔记(原文及全文翻译)——16B - Is Everybody Happy?(人人都幸福吗?)
  18. 红楼梦人物分析系统c语言,Gephi分析红楼梦
  19. 华为机试真题 Python 实现【不含 101 的数】【2022.11 Q4新题】
  20. POI(excel)中WorkBook和Sheet应用实践总结

热门文章

  1. c语言铁路托运行李费用图,3.为铁路部门编写计算运费的程序。假设铁路托运行李,规定每张客票托运费计算方法是:行李重量不超过50kg...
  2. java使用教程——组件及事件处理——常用组件与布局
  3. easyui datagrid 中怎么选中所有页面的数据_学会这5个Excel中常用技巧,可以准时下班去摆摊了...
  4. [SpringBoot2]welcomefavicon
  5. [蓝桥杯2018初赛]第几个幸运数-数论+枚举
  6. 蓝桥杯2015初赛-三羊献瑞-枚举
  7. 激光炸弹(二维前缀和问题)
  8. diff git 指定时间,git diff日期?
  9. java安装版本哪种好_我怎么知道我安装了哪个版本的Java?
  10. 「LibreOJ Round #11」Misaka Network 与求和(杜教筛 + Min_25)