一、概述
Spring Cloud GateWay作为Spring Cloud生态系统中的网关,目的是代替zuul。其基于WebFlux框架,底层使用高性能的Reactor模式的通信框架Netty。
提供统一的路由方式且基于Filter链的方式提供网关的基本功能,如:安全、监控/指标、限流等。
二、特性
1、基于Spring Framework 5,Project Reactor,SpringBoot 2.0进行构建
2、动态路由:能够匹配任何请求属性
3、可以对路由指定Predicates(断言)和Filter(过滤器)
4、集成Hystrix的断路器功能
5、集成SpringCloud服务发现功能
6、请求限流
7、路径重写
……
三、三个概念
1、Route(路由)
路由是构建网关的基本模块,由ID、目标URI和一系列的断言、过滤器组成,如果断言为true则匹配该路由
2、Predicates(断言)
匹配Http请求中的所有内容(请求头或请求参数等)
3、Filter(过滤)
指Spring框架中GatewayFilter的实例,使用过滤时,可以在请求被路由之前或之后对请求做出修改
四、工作流程
客户端向Spring Cloud GateWay发出请求,然后在Gateway Handler Mapping中找到与请求相匹配的路由,将其发送到Gateway Web Handler;
Handler再通过指定的过滤器链将请求发送到实际的执行业务逻辑,然后返回(过滤器可能会在发送代理请求之前(pre)或之后(post)执行业务逻辑);
Filter在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等;
在“post”类型的过滤器可以做内容响应、响应头的修改,日志的输出、流量监控等功能
Predicates cookies路由规则
Header
Host
Method
Query
图片来源:尚硅谷-周阳 Spring CLoud Alibaba
评论 (0)