SpringCould Gateway网关
SpringCould Gateway网关
1.概述:
1.它是新一代的网关,代替了zuul 1.x,缘由是zuul不在维护了,而2.x还未发布
2.它是基于WebFlux框架实现的,而WebFlux框架的底层则使用了高性能的Reactor模式通信框架Netty ;
3.它的目标是提供统一的路由方式基于Filter链的方式提供了网关基本功能,例如:安全、监控\指标、限流
注 : WebFlux是一个典型的非阻塞异步的框架
2.网关的作用:
反向代理、鉴权、流量控制、熔断、日志监控等;它是非阻塞异步的框架,高性能、高可用 ;
3.三大核心概念:
1.Route(路由)、2.Predicate(断言)、3.Filter(过滤)
路由 : 构建网观点的基本模块,由ID,目标URI,一系列的断言和过滤组成,如果断言为true则匹配该路由
断言 : 匹配HTTP中请求中的内容,如果请求与断言相匹配则进行路由; ->(相当于是一次条件的筛选)
过滤 : 使用过滤器,可以再请求被路由前或者之后对请求进行修改; ->(相当于断言之后的二次条件过滤)
SpringCould Gateway 的工作流程基本就是 : 路由的转发 + 执行过滤链
在执行过滤链过滤的时候,会有可能在过滤前做参数校验、权限校验、协议转换等 或者 在过滤后进行日志输出、流量监控
SpringCould Gateway配置路由有两种方式:一个是配置的方式(在yml中), 另一个是编码的方式; ----<优选配置的方式>
3.1 Route路由
GatewayFilter 单一的过滤器(很少用)
GlobalFilter 自定义的全局的过滤器, 要实现 implements GlobalFilter, ordered两个接口,重写他们的方法