【Spring Cloud】网关-gateway(2.x)

cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,springcloud最后自己研发了一个网关代替Zuul,那就是SpringCloud Gateway。
在这里插入图片描述

概述

gateway是在spring生态系统之上构建的API网关服务,基于Spring 5, Spring Boot 2和Project Reactor等技术。gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等。

SpringCLoud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架。

作用

• 反向代理
• 鉴权
• 流量控制
• 熔断
• 日志监控

微服务架构中网关的位置

在这里插入图片描述

特性

• 基于spring Framework 5, Project Reactor 和 spring boot 2.0 进行构建;
• 动态路由:能够匹配任何请求属性;
• 可以对路由指定 Predicate(断言) 和 Filter(过滤器);  
• 集成Hystrix的断路器功能;
• 集成SPringCloud服务发现功能;
• 易于编写的 Predicate(断言) 和 Filter(过滤器);
• 请求限流功能;
• 支持路径重写。

SpringCLoud Gateway 和 Zuul 的区别

在SpringCloud Finchley正式版之前,Spring Cloud推荐的网关是Netflix提供的Zuul:

1、Zuul1.x,是一个基于阻塞|/ 0的API Gateway
2、Zuul 1.x基于Servlet 2.5使用阻塞架构它不支持任何长连接(如WebSocket) Zuul的设计模式和Nginx较像,每次I/ 0操作都是从
工作线程中选择一个执行, 请求线程被阻塞到工作线程完成,但是差别是Nginx用C++实现, Zuul 用Java实现,而JVM本身会有第
一次加载较慢的情况, 使得Zuul 的性能相对较差。
3、Zuul 2.x理念更先进,想基于Netty非阻塞和支持长连接,但SpringCloud目前还没有整合。Zuul 2.x的性能较Zuul 1.x有较大提升
。在性能方面,根据官方提供的基准测试, Spring Cloud Gateway的RPS (每秒请求数)是Zuul的1. 6倍。
4、Spring Cloud Gateway建立在Spring Framework 5、Project Reactor和Spring Boot2之上,使用非阻塞 API。
5、Spring Cloud Gateway还支持WebSocket,并且与Spring紧密集成拥有更好的开发体验

Gateway的工作流程

在这里插入图片描述
核心逻辑:路由转发+执行过滤器链

三大核心概念

  1. Route(路由):是构建网关的基本模块,它是由URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由。(上面的工作流程有所体现)
  2. Predicate(断言):参考Java8的java.util.function.Predicate,开发人员可以 匹配 HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由。
  3. Filter(过滤):指的是SPring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。

→断言:
在这里插入图片描述
在这里插入图片描述
→Filter:
路由过滤器可用于修改进入的HTTP请求和返回的HTTP响应,路由过滤器只能指定路由进行使用。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨幂等

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值