GateWay


git地址:https://github.com/sunuanwuhou/SpringCloud2020.git

GateWay

基础知识

官网:https://spring.io/projects/spring-cloud-gateway

GateWay是 zuul1.x的替代

是基于WebFlux框架(异步非阻塞)实现的,底层是Reactor模式通信框架Netty

image

这里留一个疑问,为什么网关前面还有一个Nginx?

为什么不用Zuul

  • Zuul1.0进入维护
  • GateWay是异步非阻塞

特性

  • 基于Spring5、Project reactor和Spring2.0
  • 动态路由
  • 对路由进行断言(Predicate)和过滤(filter)
  • 集成了Hystrix
  • 集成SpringCloud服务发现功能
  • 请求限流

三大核心介绍

  • Route

路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由

  • Predicate

开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由

  • Filter

指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改

GateWay核心逻辑就是路由转发+执行过滤器链

实战