1、SpringCloud Gateway简介

        Spring Cloud Gateway是Spring Cloud的一个全新项目,基于Spring 5.0+Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。

        Spring Cloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。

        Spring Cloud Gateway的目标提供统一的路由方式且基于Filter链的方式提供了网关基本的功能,如:安全、监控/指标、和限流。

Spring  Cloud Gateway底层使用了高性能的通信框架Netty。

2、 Spring cloud Gateway特性

  1. 基于Spring Framework 5,Project  Reactor和Spring Boot 2.0。
  2. 集成Hystrix断路器。
  3. 集成Spring Cloud DiscoveryClient。
  4. Predicates和Filters作用于特定路由,易于编写的Predicates和Filters。
  5. 具备一些网关的高级功能:动态路由、限流、路径重写。

     * SpringCloud Gateway和Zuul主要的区别,还是在底层的通信框架上。

3、 Spring cloud Gateway核心概念

  1. Route(路由):路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由,目标URI会被访问。
  2. Predicate(断言):这是一个java 8的Predicate,可以使用它来匹配来自HTTP请求的任何内容,如:请求头和请求参数。断言的输入类型是一个ServerWebExchange。
  3. Filter(过滤器):指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者后对请求进行修改。

         总结:web请求,通过一些匹配条件,定位到真正的服务节点。并在这个转发过程的前后,进行一些精细化控制。predicate就是匹配条件,而filter,就可以理解为一个无所不能的拦截器。有了这两个元素,再加上目标URI,就可以实现具体的路由了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐