Spring Cloud Gateway网关
一、Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求由(路由)转发到对应的微服务
网关的执行过程:当一个请求到达网关,网关利用断言,查看该请求是否符合某一个路由规则,若符合某一个路由规则,则路由到指定的服务,但路由期间要经过一系列过滤器
二、网关(Gateway)是服务的统一入口,它核心功能是:过滤和路由
三、核心概念分析
a、路由(route) 路由信息的组成:由一个ID、一个目的URL、一组断言工厂、一组Filter组成。如果路由断言为真,说明请求URL和配置路由匹配。
b、断言(Predicate) Spring Cloud Gateway中的断言函数输入类型是Spring 5.0框架中的ServerWebExchange。Spring Cloud Gateway的断言函数允许开发者去定义
匹配来自于HttpRequest中的任何信息比如请求头和参数。
c、过滤器(Filter) 一个标准的Spring WebFilter。 Spring Cloud Gateway中的Filter分为两种类型的Filter,分别是Gateway Filter和Global Filter。过滤器
Filter将会对请求和响应进行修改处理
四、Gateway网关中过滤器的实际运用:
a、请求鉴权:一般 GatewayFilterChain 执行filter方法前,如果发现没有访问权限,直接就返回空。
b、异常处理:一般 GatewayFilterChain 执行filter方法后,记录异常并返回。
c、服务调用时长统计: GatewayFilterChain 执行filter方法前后根据时间统计。