Spring cloud gateway 源码分析02 网关路由功能01

核心加载,查找路由函数如下

获取路由route后,再调用validateRoute校验

创建一个类型为 org.springframework.cloud.gateway.config.GatewayProperties 的 Bean 对象,用于加载配置文件配置的 RouteDefinition / FilterDefinition

Spring Cloud Gateway Diagram

看一下sample中的路由例子,如下

指定一个filter,处理后转发到指定的uri

Route 的构建,分成同步和异步,入参都为RouteDefinition

看加载RouteDefinition

RouteDefinition,通过字符串text 初始化

PredicateDefinition 初始化同理

FilterDefinition 同理

从配置文件读取路由配置

routes 属性,路由配置。通过 spring.cloud.gateway.routes 配置

 

路由存储

也就是更新本地内存map的routes数据

 

DiscoveryClientRouteDefinitionLocator   路由的发现,获取注册在注册中心的服务列表,生成对应的 RouteDefinition 数组。

1.首先解析配置文件的表达式,获取includePredicate

2.根据解析出的urlExpr和服务实例serviceInstance,构造出routeDefinition

3.再解析出配置文件中的predicate,添加到RouteDefinition中

4.继续从配置文件中解析出filters,添加到RouteDefinition中

5.最后返回RouteDefinition

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值