GateWay路由规则与动态路由详细介绍

 更新时间:2022年09月01日 09:26:14   作者:悠然予夏  
这篇文章主要介绍了GateWay路由规则与GateWay动态路由,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

1、路由规则

Spring Cloud GateWay 帮我们内置了很多 Predicates功能,实现了各种路由匹配规则(通过 Header、请求参数等作为条件)匹配到对应的路由。

时间点后匹配

spring:
    cloud:
        gateway:
            routes:
                - id: after_route
                    uri: https://example.org
                    predicates:
                        - After=2017-01-20T17:42:47.789-07:00[America/Denver]

时间点前匹配

spring:
    cloud:
        gateway:
            routes:
                - id: before_route
                uri: https://example.org
                predicates:
                    - Before=2017-01-20T17:42:47.789-07:00[America/Denver]

时间区间匹配

spring:
    cloud:
        gateway:
            routes:
                - id: between_route
                uri: https://example.org
                predicates:
                    - Between=2017-01-20T17:42:47.789-07:00[America/Denver],2017-01-21T17:42:47.789-07:00[America/Denver]

指定Cookie正则匹配指定值

spring:
    cloud:
        gateway:
            routes:
                - id: cookie_route
                uri: https://example.org
                predicates:
                    - Cookie=chocolate, ch.p

指定Header正则匹配指定值

spring:
    cloud:
        gateway:
            routes:
                - id: header_route
                uri: https://example.org
                predicates:
                    - Header=X-Request-Id, \d+

请求Host匹配指定值

spring:
    cloud:
        gateway:
            routes:
                - id: host_route
                uri: https://example.org
                predicates:
                    - Host=**.somehost.org,**.anotherhost.org

请求Method匹配指定请求方式

spring:
    cloud:
        gateway:
            routes:
                - id: method_route
                uri: https://example.org
                predicates:
                    - Method=GET,POST

请求路径正则匹配

spring:
    cloud:
        gateway:
            routes:
                - id: path_route
                uri: https://example.org
                predicates:
                    - Path=/red/{segment},/blue/{segment}

请求包含某参数

spring:
    cloud:
        gateway:
            routes:
                - id: query_route
                uri: https://example.org
                predicates:
                    - Query=green

请求包含某参数并且参数值匹配正则表达式

spring:
    cloud:
        gateway:
            routes:
                - id: query_route
                uri: https://example.org
                predicates:
                    - Query=red, gree.

远程地址匹配

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

2、动态路由

GateWay支持自动从注册中心中获取服务列表并访问,即所谓的动态路由

实现步骤如下

  • pom.xml中添加注册中心客户端依赖(因为要获取注册中心服务列表,eureka客户端已经引入)
  • 动态路由配置

注意:动态路由设置时,uri以 lb: //开头(lb代表从注册中心获取服务),后面是需要转发到的服务名称

到此这篇关于GateWay路由规则与动态路由详细介绍的文章就介绍到这了,更多相关GateWay路由规则内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 8 Time Api 使用方法技巧

    Java 8 Time Api 使用方法技巧

    这篇文章主要介绍了Java 8 Time Api 使用方法技巧,Java 8为Date和Time引入了新的API,以解决旧java.util.Date和java.util.Calendar的缺点,更多相关内容需要的小伙伴可以参考一下
    2022-05-05
  • Java 添加、删除、格式化Word中的图片步骤详解( 基于Spire.Cloud.SDK for Java )

    Java 添加、删除、格式化Word中的图片步骤详解( 基于Spire.Cloud.SDK for Java )

    这篇文章主要介绍了Java 添加、删除、格式化Word中的图片( 基于Spire.Cloud.SDK for Java ),本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • spring声明式事务@Transactional底层工作原理

    spring声明式事务@Transactional底层工作原理

    这篇文章主要为大家介绍分析spring声明式事务@Transactional底层工作原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • Java Ribbon负载均衡详细讲解

    Java Ribbon负载均衡详细讲解

    Ribbon其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,这篇文章主要介绍了Ribbon负载均衡服务调用案例代码,需要的朋友可以参考下
    2023-01-01
  • macbook中springboot的jmeter压测示例

    macbook中springboot的jmeter压测示例

    这篇文章主要介绍了macbook中springboot的jmeter压测示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • JAVA中的动态代理使用详解

    JAVA中的动态代理使用详解

    这篇文章主要介绍了JAVA中的动态代理使用详解,动态代理提供了一种灵活且非侵入式的方式,可以对对象的行为进行定制和扩展,它在代码重用、解耦和业务逻辑分离、性能优化以及系统架构中起到了重要的作用,,需要的朋友可以参考下
    2023-08-08
  • Java运行时jar终端输出的中文日志乱码两种解决方式

    Java运行时jar终端输出的中文日志乱码两种解决方式

    jar包启动,今天java开发过来找,说jar包启动日志是乱码,这篇文章主要给大家介绍了关于Java运行时jar终端输出的中文日志乱码的两种解决方式,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Java并发编程之Semaphore的使用简介

    Java并发编程之Semaphore的使用简介

    这篇文章主要介绍了Java并发编程之Semaphore的使用简介,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-04-04
  • java判断ftp目录是否存在的方法

    java判断ftp目录是否存在的方法

    这篇文章主要为大家详细介绍了java判断ftp目录是否存在的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Java之int数组声明与初始化方式

    Java之int数组声明与初始化方式

    这篇文章主要介绍了Java之int数组声明与初始化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论