Spring Cloud Gateway的工作原理

Spring Cloud Gateway是Spring官方基于Spring5.0,Spring Boot2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供简单,有效且统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud 生态系统中的网关,目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且还基于Filter链的方式提供了网关基本的功能,例如:安全,监控、埋点,限流等。

Spring Cloud Gateway 的核心处理流程如下图,Gateway的客户端回向Spring Cloud Gateway发起请求,请求首先会被HttpWebHandlerAdapter进行提取组装成网关的上下文,然后网关的上下文会传递到DispatcherHandler。DispatcherHandler是所有请求的分发处理器,DispatcherHandler主要负责分发请求对应的处理器,比如将请求分发到对应RoutePredicateHandlerMapping(路由断言处理器映射器)。路由断言处理映射器主要用于路由的查找,以及找到路由后返回对应的FilteringWebHandler。FilteringWebHandler主要负责组装Filter链表调用Filter执行一系列Filter处理,然后把请求转到后端对应的代理服务处理,处理完毕后,将Response返回到Gateway客户端。

在Filter链中,通过虚线分割Filter的原因是,过滤器可以在转发请求之前处理或者接收到被代理服务的返回结果之后处理。所有的Pre类型的Filter执行完毕之后,才会转发请求到被代理的服务处理。被代理的服务把所有请求完毕之后,才会执行Post类型的过滤器。


博客摘录自《重新定义Spring Cloud实战》。

SpringCloud Gateway的工作原理相关推荐

  1. SpringCloud Gateway的工作方式

    SpringCloud Gateway工作方式 从官网的图来看,并不是特别复杂,首先客户端请求都会先经过Gateway Handler Mapping,匹配上就通过Gateway Web Handle ...

  2. 【SpringCloud】Eureka工作原理

    Eureka 作为 Spring Cloud 体系中最核心.默认的注册中心组件,研究它的运行机制,有助于我们在工作中更好地使用它. Eureka 核心概念 Eureka(注册中心)包含两个组件:Eur ...

  3. SpringCloud Feign工作原理基本理解

    Feign介绍 Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端.Spring Cloud引入Feign并且集成了Ribbon实现客户端负载均 ...

  4. SpringCloud Gateway 详解

    文章目录 一.网关简介 1.服务网关介绍 1.1 API网关介绍 1.2 网关主要功能 2.常用网关介绍 2.1 Nginx+Lua 2.2 Kong 2.3 Traefik 2.4 Zuul 二.S ...

  5. 一次因reactor-netty bug导致springcloud gateway请求积压问题处理

    项目中再使用springcloud gateway做微服务网关,在线上的环境忽然发现有时候接口会出现卡顿,更多集中在登陆的时候,而且卡顿呈现不确定性再检查springcloud gateway的日志时 ...

  6. 路由和交换机工作原理

    路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成.如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种"互连"并没有什么实际意义.因 ...

  7. 线程池的工作原理与源码解读

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力.所以,多线程技术是服务端开发 ...

  8. 路由及路由器工作原理深入解析3:路由与port

        日志"路由及路由器工作原理深入解析1"http://user.qzone.qq.com/2756567163/blog/1438322342介绍了"为什么要使用路 ...

  9. openwrt dhcp不分配_【装维技巧】DHCP工作原理详解(上)

    各位小伙伴们,又是元寒气满满的一天,最近在后台听到不少人对静态配置IP地址的种种抱怨: 以上问题,各位兄弟们有遇到过吗 莫急,小维来为各位小伙伴们支招 其实吧,有了动态主机配置协议DHCP(Dynam ...

最新文章

  1. 庆祝自己在博客园开通个人生涯第一个关于工作的博客
  2. python随机画散点图-python散点图实例之随机漫步
  3. Codeforces 359D Pair of Numbers | 二分+ST表+gcd
  4. Python3 系列之 可变参数和关键字参数
  5. html5 indexeddb 排序,HTML5 IndexedDB,Web SQL数据库和浏览器大战
  6. FFmpeg AVCodecContext结构体debug变量剖析
  7. 4.02Day12函数 装饰器
  8. 语音识别ASR技术通识
  9. 伪指令endp告诉汇编程序_第2章 指令系统及汇编语言程序设计 题库和答案
  10. Java线程的一些api
  11. windows下调用外部exe程序 SHELLEXECUTEINFO
  12. openpyxl 向excel插入超链接
  13. NC如何在打印模板中添加打印审批流记录
  14. 史上官场吃喝风:与送礼一样成为通用的规则
  15. 苏州大学872专栏介绍
  16. 分布式事务讲解 -消息队列+定时任务+本地事件表
  17. JavaScript常用的字符串操作对象方法
  18. vue文件如何引入icon图标并使用
  19. Python中读写文件、异常和异常处理、模块和包
  20. 数值计算笔记之迭代法的收敛性

热门文章

  1. win10下安装、卸载ubuntu双系统
  2. VMware搭建虚拟机服务器
  3. HTTPS 原理及中间人攻击
  4. MySQL 隔离级别
  5. HTML-CSS笔记_0424
  6. 拼多多商家遇到平台介入,如何解决?
  7. 英特尔ROG京东三强携手,最强电竞装备亮相斗鱼嘉年华
  8. ios app的分类与本质,感想
  9. 科技驱动金融 | 揭秘国寿财自动测试平台
  10. SpringCloud(5)—— 国寿i动项目经验