当前位置: 首页 > news >正文

java B2B2C springmvc mybatis多租户电子商城系统- 路由定位器

在SpringCloud Gateway中,路由定位器是查找请求连接的作用,我们通过源码看下,在SpringCloud Gateway中,路由定位器是如何工作的。 需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码:壹零叁八柒柒肆六二六 一、RouteLocator SpringCloud gateway的路由定位器,包括CachingRouteLocator,CompositeRouteLocator,RouteDefinitionRouteLocator,他们的关系可以从GatewayAutoConfiguration中的代码看出,

public RouteLocator routeDefinitionRouteLocator(GatewayProperties properties,
                                   List<GatewayFilterFactory> GatewayFilters,
                                   List<RoutePredicateFactory> predicates,
                                   RouteDefinitionLocator routeDefinitionLocator) {
  return new RouteDefinitionRouteLocator(routeDefinitionLocator, predicates, GatewayFilters, properties);
}
@Bean
@Primary
//TODO: property to disable composite?
public RouteLocator cachedCompositeRouteLocator(List<RouteLocator> routeLocators) {
  return new CachingRouteLocator(new CompositeRouteLocator(Flux.fromIterable(routeLocators)));
}
复制代码

就是CachingRouteLocator中包含了CompositeRouteLocator,CompositeRouteLocator中包含了RouteDefinitionRouteLocator类型,就是一个请求过来获取Route的入口类型就是CachingRouteLocator的getRoutes方法。同时这个类型还支持监听zk节点变更事件,刷新缓存

二、RouteDefinitionLocator 而RouteDefinitionRouteLocator定位器是通过RouteDefinitionLocator的RouteDefinition定位器获取定义的数据的。

有三种类型的RouteDefinitionLocator:DiscoveryClientRouteDefinitionLocator,DiscoveryClientRoutDefinitionRepository,PropertiesRouteDefinitionLocator。

其中,DiscoveryClientRoutDefinitionRepository使用的是DiscoveryClientRouteDefinitionLocator定位器,是从注册中心获取路由信息,PropertiesRouteDefinitionLocator是从配置文件中获取路由信息。

三、时序图如下

java B2B2C Springcloud电子商城系统

转载于:https://juejin.im/post/5c203a52e51d45360362f34d

相关文章:

  • linux对vxlan的支持
  • Mysql优化
  • 3.1Python的判断选择语句
  • 深度解析ES6通过WeakMap解决内存泄漏问题
  • Redis 和 memcache 简单比较
  • verilog语法实例学习(1)
  • Docker三剑客之docker-machine
  • 正者表达式exec和match
  • Linux操作系统有什么吸引力,在程序员中这么受欢迎!
  • Oracle常用语句
  • Ubuntu Vscode安装
  • wx2tt 微信小程序转头条小程序工具
  • Min_25筛
  • spring-boot切面编程-日志记录
  • 从0到1学C++ 第2篇 认识C++面向过程编程的特点
  • SegmentFault for Android 3.0 发布
  • 【node学习】协程
  • 2017前端实习生面试总结
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • crontab执行失败的多种原因
  • Git初体验
  • go append函数以及写入
  • HTTP中的ETag在移动客户端的应用
  • js面向对象
  • laravel 用artisan创建自己的模板
  • maya建模与骨骼动画快速实现人工鱼
  • react-native 安卓真机环境搭建
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • SpringCloud集成分布式事务LCN (一)
  • vagrant 添加本地 box 安装 laravel homestead
  • 百度地图API标注+时间轴组件
  • 搭建gitbook 和 访问权限认证
  • 如何编写一个可升级的智能合约
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 双管齐下,VMware的容器新战略
  • 学习Vue.js的五个小例子
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 终端用户监控:真实用户监控还是模拟监控?
  • - 转 Ext2.0 form使用实例
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • "无招胜有招"nbsp;史上最全的互…
  • # Apache SeaTunnel 究竟是什么?
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (06)金属布线——为半导体注入生命的连接
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4.10~4.16)
  • (windows2012共享文件夹和防火墙设置
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (排序详解之 堆排序)