SpringCloud Gateway
简述
如果你引入了starter,但不想开启gateway,可以设置 spring.cloud.gateway.enabled=false
Spring Cloud Gateway-术语
Route: 网关基本构件块。它由ID、目标URI、predicates 断言集合和filters过滤器集合定义。如果聚合断言为真,则匹配路由。
Predicate: Java 8 Function Predicate. 输入类型是 Spring Framework ServerWebExchange. 这允许开发人员匹配来自HTTP请求的任何内容,例如头或参数。
Filter: 这些是使用特定工厂构造的 Spring Framework GatewayFilter 实例。在这里,可以在发送downstream 请求之前或之后修改requests和responses。
理解:
1.断言:请求匹配;
2.过滤器:对请求或者返回进行过滤增强。
如何工作
GetewayClient请求 Spring Cloud Gateway,如果Gateway Handler Mapping 确定请求与路由匹配,该请求被发送到Gateway Web Handler。此Handler运行时发送请求到具体的请求,其中通过过滤器链。过滤器被虚线分隔的原因是过滤器可以在发送代理请求之前或之后执行逻辑。执行所有“预”过滤逻辑,然后发出代理请求。在发出代理请求后,将执行“post”过滤器逻辑。
注意
1. Spring Cloud Gateway 构建在 Spring Boot 2.0, Spring WebFlux, and Project Reactor之上,因此,许多熟悉的同步库(例如:Spring Data 、Spring Security)或模式不适用于Spring Cloud Gateway。我们建议您在使用Spring Cloud Gateway前,先通过阅读他们的文档熟悉一些新概念。
2.SpringCloudGateway需要SpringBoot和SpringWebFlux提供的netty运行时,它不再运行于传统的Servelt容器或一个WAR包。
参考
Spring Cloud Gateway-API文档 翻译版
一个完整的springcloud 分布式框架博客 ===> github 源码地址
Hystrix完整配置列表
在Spring-Boot应用程序中使用application.yaml配置hystrix命令属性
Hystrix常用概念、注解及配置
SpringCloud Gateway 详解