git地址:https://github.com/sunuanwuhou/SpringCloud2020.git
GateWay
基础知识
官网:https://spring.io/projects/spring-cloud-gateway
GateWay是 zuul1.x的替代
是基于WebFlux框架(异步非阻塞)实现的,底层是Reactor模式通信框架Netty
这里留一个疑问,为什么网关前面还有一个Nginx?
为什么不用Zuul
- Zuul1.0进入维护
- GateWay是异步非阻塞
特性
- 基于Spring5、Project reactor和Spring2.0
- 动态路由
- 对路由进行断言(Predicate)和过滤(filter)
- 集成了Hystrix
- 集成SpringCloud服务发现功能
- 请求限流
三大核心介绍
- Route
路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由
- Predicate
开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由
- Filter
指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改
GateWay核心逻辑就是路由转发+执行过滤器链