微服务网关gateway

官网文档

一、基础简介

gateway特性:

  • 基于SpringFramework5,ProjectReactor和SpringBoot2.0进行构建
  • 能够匹配任何任何请求属性
  • 可以对路由指定Predicates和Filters
  • 集成断路器
  • 集成Spring Cloud服务发现
  • 易于编写的Predicates和Filters
  • 支持请求限流
  • 支持路径重写

三个概念:

路由:路由是构建网关的基本模块,它由ID,目标URI,一系列的断言Predicates和过滤器Filters组成,
如果断言为true,则匹配该路由。
断言:参考Java8的java.util.function.Predicate,开发人员可以匹配HTTP请求中的所有内容,例如请求
头或请求参数,如果请求与断言相匹配则进行路由。
过滤:Spring框架中GatewayFilter的实例,使用过滤器,可以载请求被路由前或者后对请求进行修改。

Gateway工作原理

客户端向Spring Cloud Gateway发出请求。如果网关处理程序映射确定请求与路由匹配,则将其发送到
网关Web处理程序。该处理程序通过特定于请求的过滤器链来运行请求。筛选器由虚线分隔的原因是,
筛选器可以在发送代理请求之前和之后都运行逻辑。所有“前置”过滤器逻辑均被执行。然后发出代理请
求。发出代理请求后,将运行“后”过滤器逻辑
在这里插入图片描述

二、快速入门

我们搞两个服务,分别是product产品服务项目,以及order订单服务项目,我们搞个小案例,搞一个网
关,统一对path请求地址进行管理;
在这里插入图片描述

gateway依赖:

<dependency> 
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

application.yml配置

spring:
  application:
  	name: gataway-server
  cloud:
    gateway:
      routes: # 路由规则定义
      - id: product #路由ID
        uri: https://example.org # 路由地址
        predicates: # 断言规则
	      - Path=/product/** 
	 - id: order #路由ID
        uri: https://example.org # 路由地址
        predicates: # 断言规则
        - Path=/order/** 

三、Gateway路由规则

路由断言工厂

Spring Cloud Gateway 将路由匹配为 Spring WebFluxHandlerMapping基础架构的一部分。Spring Cloud Gateway 包含许多内置的路由断言工厂。所有这些断言都匹配 HTTP 请求的不同属性。您可以将多个路由断言工厂与逻辑and语句结合起来。
路由断言工厂RoutePredicateFactory包含的主要实现类如图所示,包含Datetime、Cookie、
Header、Host、Method、Path、Query、RemoteAddr、Weight等类型的路由断言。

1.日期时间路由匹配规则

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

spring:
  cloud:
    gateway:
      routes:
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值