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

完整教程:Spring Cloud gateway 路由规则

Spring Cloud gateway 路由规则

文章目录

一、路由常用属性解析

1.1 示例配置
server:port: 90
spring:cloud:gateway:discovery:locator:enabled: true #启动DiscoveryClient,可以实现服务的发现,自动根据注册的服务创建对应的路由routes:- id: Authuri: lb://wuxsms-authorder: -1predicates:- Path=/wuxsms-auth/**filters:- RewritePath=/wuxsms-auth/(?.*), /${segment}- StripPrefix=2
1.2 属性解析
  1. id

    1. 类型:字符串
    2. 作用:唯一标识一个路由。必须是唯一的,不能重复。
    3. 示例:
  2. uri

    1. 类型:字符串
    2. 作用:指定目标微服务的 URI。可以是具体的 URL(http://www.baidu.com等第三方系统),也可以配合nacos服务注册中心负载均衡的 URI(如 lb://service-name)。
  3. predicates

    1. 类型:列表

    2. 作用:定义一组断言,用于决定请求是否匹配该路由。每个断言都是一个条件,所有条件都满足时,请求才会被路由到目标微服务。

    3. 常见断言:

      • Path:匹配请求路径。
      • Method:匹配请求方法(GET、POST 等)。
      • Query:匹配查询参数。
      • Header:匹配请求头。
      • Cookie:匹配请求中的 Cookie。
      • Host:匹配请求主机。
    4. 匹配规则

    5. 匹配规则

      语法

      示例

      解释

      精确匹配

      Path=/exact/path

      Path=/api/user

      匹配请求路径为 /api/user 的请求

      单级通配符

      Path=/path/*

      Path=/api/user/*

      匹配 /api/user/ 下的一级子路径,例如 /api/user/profile

      多级通配符

      Path=/path/**

      Path=/api/user/**

      匹配 /api/user/ 下的所有子路径,包括多级子路径,例如 /api/user/profile 和 /api/user/orders/123

      正则表达式

      Path=/pattern

      Path=/api/user/d+

      匹配 /api/user/ 后跟一个或多个数字的路径,例如 /api/user/123

  4. filters

    1. 类型:列表

    2. 作用:定义一组过滤器,用于在请求转发前后对请求或响应进行修改。过滤器可以改变请求路径、添加请求头等。

    3. 常见过滤器:

      • StripPrefix:去掉路径前缀。

        • StripPrefix 过滤器可以用来去掉路径中的前缀部分。这个过滤器更简单,适合去掉固定数量的路径段。

          例如:

          spring:cloud:gateway:routes:- id: user-serviceuri: lb://user-servicepredicates:- Path=/api/user/**filters:- StripPrefix=2

          在这个配置中:

          • Path=/api/user/** 表示匹配以 /api/user/ 开头的路径。
          • StripPrefix=2 表示去掉路径中的前两个段,即 /apiuser
      • RewritePath:重写请求路径。

      • springCloud 中网关自动转发到其他服务就是使用改属性的配置

      • AddResponseHeader:添加响应头。

      • SetStatus:设置响应状态码。

      • Retry:重试机制。

  5. order

    1. 类型:整数
    2. 作用:定义路由的优先级。顺序值越小,优先级越高。默认情况下,路由是按配置顺序依次匹配的,只要匹配到就不再往下匹配。
  6. metadata

    1. 类型:键值对
    2. 作用:存储额外的元数据信息,可以在过滤器或其他组件中使用。

二、问题分析,springCloud微服务中没有任何路由配置,网关为什么能根据请求转发到相应的业务服务的

2.1 开启,用于启用通过服务发现来路由到服务的功能
spring:cloud:gateway:discovery:locator:enabled: true
2.2 断点RoutePredicateHandlerMapping类查看自动注册的路由

在这里插入图片描述

发现有两条【lb://wuxsms-auth】服务的路由配置

在这里插入图片描述

为什么会有两条呢?

  1. 第一条:nacos配置中心自定义配置的一条
  2. 第二条:配置【spring: cloud: gateway: discovery: locator: enabled: true】是自动创建的一条

第一条:

在这里插入图片描述

第二条:

在这里插入图片描述

2.3 自动创建注册到Nacos的路由配置,包括dubbo服务
onNext(Route{id='ReactiveCompositeDiscoveryClient_wuxsms-auth', uri=lb://wuxsms-auth, order=0, predicate=Paths: [/wuxsms-auth/**], match trailing slash: true, gatewayFilters=[[[RewritePath /wuxsms-auth/(?.*) = '/${remaining}'], order = 1]], metadata={nacos.instanceId=192.168.1.111#8889#DEFAULT#DEFAULT_GROUP@@wuxsms-auth, nacos.weight=1.0, nacos.cluster=DEFAULT, nacos.healthy=true, dubbo.metadata-service.urls=[ "dubbo://192.168.1.111:20880/com.alibaba.cloud.dubbo.service.DubboMetadataService?anyhost=true&application=wuxsms-auth&bind.ip=192.168.1.111&bind.port=20880&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&group=wuxsms-auth&interface=com.alibaba.cloud.dubbo.service.DubboMetadataService&methods=getAllServiceKeys,getServiceRestMetadata,getExportedURLs,getAllExportedURLs&pid=1540&qos.enable=false&release=2.7.4.1&revision=2.2.0.RELEASE&side=provider&threads=500&timeout=6000×tamp=1731655720770&version=1.0.0" ], preserved.register.source=SPRING_CLOUD}})
  1. predicate: /wuxsms-auth/**,配置服务名称开头的路由
  2. RewritePath : /wuxsms-auth/(.*), /${segment} 去掉服务前缀后再转发到相应的服务
  3. order:0 ,小于nacos配置中心的优先级
  4. match trailing slash:true 匹配尾部斜杠
  5. Metadata: 元数据 (存储额外的元数据信息,可以在过滤器或其他组件中使用)
2.4 未开启 【spring: cloud: gateway: discovery: locator: enabled: false】

在这里插入图片描述

不开启该配置,则需要手动配置路由规则。若两者都没有配置则系统无法正常访问

http://www.jsqmd.com/news/368863/

相关文章:

  • Test - 2 20260211
  • 【YOLOv12多模态涨点改进】独家创新首发| TGRS 2025 | 引入CGSAFusion跨模态门控注意力融合模块,通过自注意力机制 和 门控融合提升多模态信息融合,助力红外与可见光检测高效涨点
  • 洗地机产品哪个性价比高?2026年综合推荐与评价,解决水渍残留核心痛点 - 十大品牌推荐
  • 【YOLOv10多模态涨点改进】独家创新首发| TGRS 2025 | 引入CGSAFusion跨模态门控注意力融合模块,通过自注意力机制 和 门控融合提升多模态信息融合,助力红外与可见光检测高效涨点
  • 【YOLOv10多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CDFIM跨模态差异特征交互模块,通过差异特征提取和融合增强机制,减少了冗余信息,显著提升了小目标的检测精度,高效涨点改进
  • 超越ChatGPT!一文读懂如何用LoRA高效微调打造专属行业大模型
  • PyTorch模型定义:从子类化到动态计算图的深度探索
  • 【YOLOv10多模态涨点改进】独家创新首发 | TGRS 2025 | 引入FDFEF频域特征增强融合模块,通过减少背景噪声和提高目标特征的可区分性,适用水下遥感图像实例分割、小目标检测任务
  • 【YOLOv8多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CGSAFusion跨模态门控注意力融合模块,通过自注意力机制 和 门控融合提升多模态信息融合,助力红外与可见光检测高效涨点
  • Qwen-Image-2.0(Qwen Image 2)图片模型:长文本排版 + 2K 清晰度 + 生图/改图一体
  • 【YOLOv8多模态涨点改进】独家创新首发 | TGRS 2025 | 引入FDFEF频域特征增强融合模块,通过减少背景噪声和提高目标特征的可区分性,适用水下遥感图像实例分割、小目标检测任务
  • 留学生求职机构哪家强?2026年中国留学生求职机构推荐与评价,直击内推与成果痛点 - 十大品牌推荐
  • 2026年中国留学生求职机构推荐:行业权威评测,针对归国与海外求职痛点精准指南 - 十大品牌推荐
  • 2026年中国留学生求职机构排名:2026年求职趋势评测,融合海外与归国双线场景分析 - 十大品牌推荐
  • 眼台灯哪个品牌更可靠?2026年护眼台灯品牌推荐与排名,解决耐用性与舒适度痛点 - 十大品牌推荐
  • ollama下载模型并运行
  • 护眼台灯哪个品牌好?2026年护眼台灯品牌推荐与排名,解决频闪与耐用性核心痛点 - 十大品牌推荐
  • 工业显示屏:eDP接口的驱动与控制电路
  • 留学生求职哪家强?2026年机构综合排名与推荐覆盖多元场景与需求痛点 - 十大品牌推荐
  • 盘点2026年高精度粗糙度轮廓仪,口碑好的品牌推荐有哪些 - 工业品网
  • 如何为不同场景选护眼台灯?2026年护眼台灯品牌全面评测与推荐,直击频闪与舒适度痛点 - 十大品牌推荐
  • Python 数据结构(线性表):从理论到实践
  • FTP协议的双面性:深入解析主动与被动模式的工作机制
  • 说说广州中雅乐石英石台面,质量靠谱吗,价格多少钱? - mypinpai
  • 哪家机构能解决核心求职痛点?2026年中国留学生求职机构推荐与排名分析 - 十大品牌推荐
  • 破局AI算力生态:华为CANN的开源之路与一体化平台新范式
  • ros2实现路径规划---nav2部分
  • 2026年美国投资移民机构哪家强?基于成功案例与法律支持维度的深度评价与推荐 - 十大品牌推荐
  • 2026年工装设计公司推荐:全国服务能力趋势评测,涵盖洁净间与商业空间核心痛点 - 十大品牌推荐
  • 2026免贴点动态扫描仪怎么选:五大品牌深度对比+选购指南 - 匠言榜单