文章目录
Gateway 能干什么?
- 反向代理
- 鉴权
- 流量控制
- 熔断
- 日志监控
Gateway 是什么?
Gateway 是在 Spring 生态系统之上构建的API网关服务,于 Spring 5, Spring Boot 2 和 Project Reactor 等技术。Gateway旨在提供一种简单而有效的方式来对 API 进行路由, 以及提供一些强大的过滤器功能,例如: 熔断、限流、重试等。
SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0+ Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul, 在 Spring Cloud 2.0 以上版本中,没有对新版本的 Zuul 2.0 以上最新高性能版本进行集成,仍然还是使用的 Zuul 1.x 非 Reactor 模式的老版本。而为了提升网关的性能,SpringCloud Gateway 是基于 WebFlux 框架实现的,而 WebFlux 框架底层则使用了高性能的 Reactor 模式通信框架 Netty。Spring Cloud Gateway 的目标是提供统一的路由方式且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标和限流。
Spring Cloud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架。
Gateway 在微服务架构所处的位置
Spring Cloud Gateway 具有如下特性:
- 动态路由:能够匹配任何请求属性
- 可以对路由指定 Predicate(断言)和 Filter(过滤器)
- 集成 Hystrix 的断路器功能
- 集成 Spring Cloud 服务发现功能
- 支持路径重写
Spring Cloud Gateway 与 Zuul 1.x 的区别:
- Zuul 1.x 是基于阻塞 I/O 的