两天学会微服务网关Gateway-Gateway路由规则

news2024/9/23 9:35:48

锋哥原创的微服务网关Gateway视频教程:

Gateway微服务网关视频教程(无废话版)_哔哩哔哩_bilibiliGateway微服务网关视频教程(无废话版)共计17条视频,包括:1_Gateway简介、2_Gateway工作原理、3_Gateway HelloWorld快速入门等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1oX4y1u7ZJ/

4.1 路由断言工厂

Spring Cloud Gateway将路由作为Spring WebFluxHandlerMapping基础架构的一部分进行匹配。Spring Cloud Gateway包括许多内置的路由断言工厂。所有这些断言都与HTTP请求的不同属性匹配。您可以将多个路由断言工厂与逻辑and语句结合使用。

路由断言工厂RoutePredicateFactory包含的主要实现类如图所示,包含Datetime、Cookie、Header、Host、Method、Path、Query、RemoteAddr、Weight等类型的路由断言。

4.2 日期时间路由匹配规则

匹配指定日期时间之后的请求 After

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: after_route
         uri: http://localhost:8080/
         predicates:
          - After=2021-04-20T06:06:06+08:00[Asia/Shanghai]

匹配指定日期时间之前的请求 Before

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: before_route
         uri: http://localhost:8080/
         predicates:
          - Before=2021-04-20T06:06:06+08:00[Asia/Shanghai]

匹配指定日期时间之间的请求 Between

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: betwwen_route
         uri: http://localhost:8080/
         predicates:
          - Between=2021-01-20T06:06:06+08:00[Asia/Shanghai],2021-04-20T06:06:06+08:00[Asia/Shanghai]

4.3 Cookie路由匹配规则

所述Cookie路由断言工厂采用两个参数,该cookiename和regexp(其是Java正则表达式)。该断言匹配具有给定名称且其值与正则表达式匹配的cookie。以下示例配置cookie路由断言工厂:

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: cookie_route
         uri: http://localhost:8080/
         predicates:
          - Cookie=token, \d+

4.4 Header路由匹配规则

所述Header;路由断言工厂采用两个参数,报头name和一个regexp(其是Java正则表达式)。该断言与具有给定名称的头信息匹配,该标头的值与正则表达式匹配。以下示例配置Header路由断言:

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: header_route
         uri: http://localhost:8080/
         predicates:
          - Header=X-Request-Id, \d+

4.5 Host路由匹配规则

该`Host`路由断言工厂需要一个参数:主机名的列表`patterns`。该模式是带有.分隔符的Ant样式的模式。断言与`Host`匹配模式的标头匹配。以下示例配置主机路由断言:

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: host_route
         uri: http://localhost:8080/
         predicates:
          - Host=**.somehost.org,**.anotherhost.org

4.6 Method路由匹配规则

所述Method路由断言厂需要methods的参数,它是一个或多个参数:HTTP方法来匹配。以下示例配置方法路由断言:

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: method_route
         uri: http://localhost:8080/
         predicates:
          - Method=GET,POST

4.7 Path路由匹配规则

Path路由断言厂有两个参数:春天的列表PathMatcher patterns和一个可选的标志叫matchOptionalTrailingSeparator。以下示例配置路径路由断言:

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: path_route
         uri: http://localhost:8080/
         predicates:
          - Path=/product/{segment}

4.8 Query路由匹配规则

所述Query路由断言工厂采用两个参数:所要求的param和可选的regexp(其是Java正则表达式)。以下示例配置查询路由断言:

spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
       - id: query_route
         uri: http://localhost:8080/
         predicates:
          - Query=green

如果请求包含green查询参数,则前面的路由匹配。

4.9 RemoteAddr路由匹配规则

所述RemoteAddr路由断言工厂需要的列表(分钟尺寸1) sources,其是CIDR的表示法(IPv4或IPv6)的字符串,如192.168.0.1/16(其中192.168.0.1是一个IP地址和16一个子网掩码)。下面的示例配置RemoteAddr路由断言:

spring:
  cloud:
    gateway:
      routes:
      - id: remoteaddr_route
        uri: https://example.org
        predicates:
        - RemoteAddr=192.168.1.1/24

如果请求的远程地址为上面配置,则此路由匹配192.168.1.10。

4.10 Weight路由匹配规则

Weight路由断言工厂有两个参数:groupweight(一个int)。权重是按组计算的。以下示例配置权重路由断言:

spring:
  cloud:
    gateway:
      routes:
      - id: weight_high
        uri: https://weighthigh.org
        predicates:
        - Weight=group1, 8
      - id: weight_low
        uri: https://weightlow.org
        predicates:
        - Weight=group1, 2

这条路线会将大约80%的流量转发到weighthigh.org,将大约20%的流量转发到weightlow.org。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1490414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

行人实时动作识别

详细资料和代码请加微信:17324069443 一、项目介绍 基于PyTorchVideo的实时动作识别框架: 我们选择了yolov5作为目标检测器,而不是Faster R-CNN,它速度更快、更方便。 我们使用一个跟踪器(deepsort)来为不…

STM32(15)USART编程

使用USART实现STM32与电脑之间的通信 中介:USB转TTL模块 闭合总开关,外部时钟才会传输到分频器 c8t6手册里面写了,usart最大支持4.5MHz,所以选10 重映射时记得开启AFIO的时钟

什么是MAC地址? win10电脑查看MAC地址的多种方法

您是否知道连接到家庭网络的每件硬件都有自己的身份?正如每个设备都分配有自己的 IP 地址一样,每个硬件都有一个唯一的网络标识符。 该标识符称为MAC 地址。MAC 代表媒体访问控制。您可能需要 MAC 地址来解决网络问题或配置新设备。在 Windows 中查找您…

java常用应用程序编程接口(API)——Arrays概述

前言: 学到Arrays了,整理下心得。打好基础,daydayup! Arrays 用来操作数组的一个工具类 Arrays的常见方法 方法名说明public static String toString(类型[] arr)返回数组的内容public static int[ ] copyOfRange(类型[ ] arr,启示索引&…

机器人工具箱学习(二)

一、机械臂及运动学 1.1 机械臂构成 机械臂多采用关节式机械结构,一般具有6个自由度,其中3个用来确定末端执行器的位置,另外3个则用来确定末端执行装置的方向(姿态)。   如图所示,一个机械臂是由一组可做相对运动的关节连接的连…

[译]BNF 表示法:深入了解 Python 的语法

[译]BNF 表示法:深入了解 Python 的语法 原文:《BNF Notation: Dive Deeper Into Python’s Grammar》 https://realpython.com/python-bnf-notation/ 在阅读Python文档的时候,你可能已经遇到过BNF(Backus–Naur form)表示法: 下…

运维:记一次寻找定时任务并删除的经历

前言 我相信接手别人的服务器、或者在没有任何文档的情况去看自己原先的服务器,都或多或少会遇到莫名其妙的服务器独有规则。 比如你服务本身跑的好好的,突然啪的一下,没了! 什么原因导致的呢?其中,很大可能是定时任务在作祟。 原因分析 本次,我遇到的问题是:在Ubuntu系…

如何用Elementor创建WordPress会员网站

在下面的文章中,我们将向您展示如何使用Elementor和MemberPress在WordPress中轻松构建会员网站。这篇文章将涵盖WordPress会员网站设置过程、会员资格和受保护内容创建、重要页面和登录表单设计、电子邮件通知管理、报告等。 目录 什么是WordPress会员网站&#x…

某品零食交易平台设计与实现|基于springboot+ Mysql+Java的某品交易平台设计与实现(源码+数据库+文档+PPT)

目录 基于springboot MysqlJava的某品交易平台设计与实现 摘 要 系统详细设计 数据库设计 论文参考 源码获取 文末获取源码联系 基于springboot MysqlJava的某品交易平台设计与实现 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的…

HCIA-HarmonyOS设备开发V2.0证书

目录 一、不墨迹,上证书二、考试总结三、习题四、知识点五、坚持就有收获 HCIA-HarmonyOS Device Developer V2.0 开发者能力认证考试已通过。 一、不墨迹,上证书 一个多月的努力,验证了自己的学习成果,也认识到自己有待提升之处…

promise处理数组里面的多任务,等所有任务处理完再执行后续逻辑

业务需求,有一个数组里面的数据,需要发送异步任务验证这里面的数据是否可用,然后再将可用的数据存储到本地,原本使用的方式是使用forEach遍历数组,然后在遍历中处理每一个异步函数,等处理完异步函数之后&am…

2024最新AI大模型产品汇总

文章目录 1. 写在前面2. 效率工具3. 聊天机器人4. 应用开发工具5. Prompt工具与社区6. 通用基础大模型7. 训练框架8. 开源数据集9. 推理与部署平台及工具 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致…

springboot+bootstrap+jsp校园二手书交易平台mlg86

考虑到实际生活中在校园二手书交易系统方面的需要以及对该系统认真的分析,将系统权限按管理员和学生这两类涉及用户划分。 (a) 管理员;管理员使用本系统涉到的功能主要有个人中心、学生管理、图书类型管理、二手图书管理、通知公告管理、管理员管理、用户留言、系统…

istio pod不启动及访问报RBAC错误问题解决

istio pod不启动问题解决 在kubernetes集群中安装istio之后,在创建的depoyment中已经使用了注入注解sidecar.istio.io/inject: true’配置,但是istio pod不创建,代码示例如下 kind: Deployment apiVersion: apps/v1 metadata:name: name-an…

【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用

🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 Docker 是什么? Docker 的作用 Docker 在 Linux 中的重要性 结语 我的其他博客 前言 随着软件开发的不断发展&…

012 Linux_线程控制

前言 本文将会向你介绍线程控制(创建(请见上文),终止,等待,分离) 线程控制 线程终止 pthread_t pthread_self(void); 获取线程自身的ID 如果需要只终止某个线程而不终止整个进程,可以有三种…

鸿蒙实战应用开发:【拨打电话】功能

概述 本示例通过输入电话,进行电话拨打,及电话相关信息的显示。 样例展示 涉及OpenHarmony技术特性 网络通信 基础信息 拨打电话 介绍 本示例使用call相关接口实现了拨打电话并显示电话相关信息的功能 效果预览 使用说明 1.输入电话号码后&#…

7、Linux-防火墙和配置静态ip

一、防火墙(防火墙服务名firewalld) 防火墙配置命令:firewall-cmd firewall-cmd --help:防火墙帮助firewall-cmd --state:查看防火墙状态firewall-cmd --zonepublic --list-ports:查看所有打开的端口firew…

【独立版】表情包小程序完整版源码前后端源码

搭建要求: 1.系统要求Nginx 1.18.0PHP-7.2mysql5.6,开启 ssl,php需要安装 sg11 扩展 2.设置伪静态 location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s$1; } } location /a…

【三维重建】VastGaussian:用于大场景重建的大3D Gaussian(CVPR 2024)

题目:VastGaussian: Vast 3D Gaussians for Large Scene Reconstruction 来源:清华大学;华为诺亚;中国科学院 链接:https://vastgaussian.github.io/ 总结:VastGaussian:基于3D GS的分块优化重…