Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等
Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty
1.Gateway能干嘛?
反向代理、鉴权、流量控制、熔断、日志监控。。。
2.网关是微服务的入口
SpringCloud Gateway具有如下特性:
1.动态路由:能够匹配任何请求属性
2.可以对路由指定 Predicate(断言) 和 Filter(过滤器)
3.集成Hystrix断路器
4.集成SpringCloud服务发现
5.易于编写的Predicate和Filter
6.请求限流
7.支持路径重写
3.Gateway三大核心概念
Route 是构建网关的基本模块,由ID,目标URL,一系列的断言和过滤器组成
Predicate 开发人员可以匹配请求中的内容(如请求头或者参数),如果请求与断言相匹配则进行路由
Filter 指的是SpringCloud Gateway中的GatewayFilter实例,使用过滤器可以在请求被路由前或者之后对请求进行修改
4.Gateway工作流程
客户端向Gateway发送请求,然后再Gateway Handler Mapping中找到与请求匹配的路由,将其发送到Cateway Web Handler
Handler再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回
过滤器可能会在发送代理请求之前或之后执行业务逻辑
5.Gateway网关搭建
1.pom引入依赖
2.修改yml配置文件
3.业务类
4.主启动类
5.yml新增网关配置
6.yml配置说明