SpringCloud中的网关组件
SpringCloud中的网关组件,最先开发出供开发人员使用的,是Zuul,而在其组件之后,Spring官方基于Spring2.0、SpringBoot2.0、Project Reactor等技术开发出来了新的替代品,那就是Gateway。
在Zuul组件的基础上,更精进了一些功能,接下来的系列文章,我们就要围绕着Gateway组件来分享一下开发经验了。
介绍一下Gateway组件
如果要介绍Gateway组件,要先从其特性开始说起。
Gateway大概具有以下几个特性(也可以去官网看一下英文文档):
- 基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.0
- 能够匹配任何请求属性的路由
- 谓词和过滤器特定于路由
- 断路器集成
- Spring Cloud DiscoveryClient集成
- 易于编写谓词和过滤器
- 请求速率限制
- 路径重写
为了避免总结的不够到位,这是我从官网上拿过来的,大家勿怪。在这之后,我们会针对这些特性,去体验一下在真正开发中的如何使用的。
微服务中的网关,是作为一个API架构,用于统一管理API,并且提供安全、路由控制、流量控制、隐藏内部具体实现的功能。
Gateway中的一些必备知识点
SpringCloud Gateway中,区分了路由(Router)和过滤器(Filter),而且内置了很规范的使用方法,下面我们会一一描述的。
这里说几个概念,分别是路由、断言、过滤器,由这三个概念开始,就可以基本进入Gateway了。
路由Router
属于网关的基本模块功能,用来声明API的不同转发规则。
断言Predicate
断言是用来匹配来自HTTP请求的任何内容,比如匹配header头部、cookie、url-path链接等等的信息,最终得到匹配的转发规则,此功能也是配合路由Router来使用的。
过滤器Filter
Gateway的过滤器,提供了两种类型的过滤器,分别是Gateway Filter和Global Filter,用于支持网关的基本功能实现。
Gateway可以集成哪些功能?
那么Gateway可以集成哪些功能呢?下面就来细数一下。
- 监控
- 日志收集统计
- 认证授权
- 服务熔断
- 服务降级
- 负载均衡
微服务架构,网关作为所有服务的入口,其本职功能就占了不少的分量,再加上可以集成众多组件功能,那么就更不用说了。
总结
今天我们就开始学习Gateway网关了,非常重要的知识点,希望能更好的分享给大家。