gateway原理

本文介绍Spring Cloud Gateway的工作流程,包括如何通过handlermapping匹配route、处理请求时过滤器链的作用,以及负载均衡过滤器的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
流量进入网关后先进入handler mapping 进行匹配具体的route ,再通过handler 处理route。处理请求的时候经过过滤器链处理一系列过滤器(包括route中的自定义filter和系统自带的全局过滤器)进请求处理,最终到达被代理的服务。

在这里插入图片描述
GatewayProperties用于从配置文件中加载前缀为 spring.cloud.gateway的配置信息
在这里插入图片描述
spring gateway 接收请求流程
在这里插入图片描述

解析配置文件,生成元素为Route对象的集合。然后根据request中的URL匹配其中的某条Route对象。
↓↓↓
在这里插入图片描述
然后将路由信息放到上下文
在这里插入图片描述
同时获取对应的handler,用于invokeHandler方法的参数
在这里插入图片描述

寻找到路由后,执行处理过程
在这里插入图片描述

从route中的取出自定义过滤器,然后和全局过滤器(如负载均衡过滤器)合并,并排序(排序原理)。然后将集合放到过滤器链中。之后执行所有的过滤器。
在这里插入图片描述

负载均衡过滤器
获取route对象中的URL及微服务名称(如果URL是纯连接)。从容器中获取一个loadBalancer对象,同时根据serviceId从服务注册中心获取对应的URL。再使用轮询策略获取url。然后在将访问到gateway的地址替换成服务的请求地址,使用httpClient 进行访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值