SpringCloud
官方,对SpringCloud Gateway
特征介绍如下:
- 基于
Spring Framework 5
,Project Reactor
和Spring Boot 2.0
- 集成
Hystrix
断路器 - 集成
Spring Cloud DiscoveryClient
Predicates
和Filters
作用于特定路由,易于编写的Predicates
和Filters
- 具备一些网关的高级功能:动态路由、限流、路径重写 从以上的特征来说,和
Zuul
的特征差别不大。SpringCloud Gateway
和Zuul
主要的区别,还是在底层的通信框架上。 简单说明一下上文中的三个术语: Filter
(过滤器):Filter
和Zuul
的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。过滤器为org.springframework.cloud.gateway.filter.GatewayFilter
类的实例。Route
(路由): 网关配置的基本组成模块,和Zuul
的路由配置模块类似。一个Route
模块由一个ID
,一个目标URI
,一组断言和一组过滤器定义。如果断言为真,则路由匹配,目标URI会被访问。Predicate
(断言): 这是一个Java 8
的Predicate
,可以使用它来匹配来自HTTP
请求的任何内容,例如headers
或参数。断言的输入类型是一个ServerWebExchange
。