SpringCloud的网关Gateway介绍

Gateway是什么

Gateway是SpringCloud自己研发的网关用于代替Zuul,这里需要说明一点的是Gateway基于WebFlux,那么什么是WebFlux呢?

WebFlux

WebFlux是一个典型的异步非阻塞框架,相对于传统的web框架来说,它可以运行在诸如Netty,Undertow及支持Servlet3.1的容器上,它的核心是基于Reactor的相关API实现的。WebFlux有如下两方面的独特优势:

  • 非阻塞式
servlet3.1提供了非阻塞的API,但WebFlux提供了一种比其更完美的解决方案。使用非阻塞的方式
可以利用较小的线程或硬件资源来处理并发进而提高其可伸缩性。
  • 函数式编程特点
WebFlux支持函数式编程来定义路由端点处理请求

Gateway可以做什么

网关可以理解为网络关卡,是整个微服务的统一入口。
在这里插入图片描述
可以和服务注册中心完美的整合,如:Eureka、Consol、Nacos。Spring Cloud Gateway 功能特征如下:

  • 基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0
  • 动态路由
  • Predicates 和 Filters 作用于特定路由
  • 集成 Hystrix 断路器
  • 集成 Spring Cloud DiscoveryClient
  • 易于编写的 Predicates 和 Filters
  • 限流
  • 路径重写
    在这里插入图片描述
    GateWay的核心就是Route、Predicates 和 Filters 作用于特定路由。
  • Route:路由是网关的基本构件。它由ID、目标URI、谓词集合和过滤器集合定义。如果聚合谓词为真,则匹配路由。
  • Predicate:参照Java8的新特性Predicate。这允许开发人员匹配HTTP请求中的任何内容,比如头或参数。
  • Filter:可以在发送下游请求之前或之后修改请求和响应。
Spring Cloud Gateway 工作原理

在这里插入图片描述

  • 客户端向 Spring Cloud Gateway 发出请求。然后在 Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到 Gateway Web Handler。Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(“pre”)或之后(“post”)执行业务逻辑。
  • Filter在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等有着非常重要的作用。
  • 核心逻辑就是路由转发,执行过滤器链。

学习:API网关在微服务架构中的应用
Spring Cloud Gateway初体验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值