SpringCloud Gateway 服务网关 学习

作为SpringCloud 生态系统中的网关,目标是代替Zuul,在SpringCloud2.0版本中,没有对新版本的Zuul2.0以上最新高性能版本进行集成,任然是Zuul1.x ,非Reactor 模式的老版本。而为了提升网关的性能,SpringCloud Gateway 是基于WebFlux 框架实现的,而webFlux框架底层则使用了高性能的Reactor 模式通信框架Netty

SpringCloud Gateway 的目标提供统一的路由方式且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。

Webflux 框架插播:

在Servlet3.1 之后有了异步非阻塞的支持。而Webflux是一个典型非阻塞异步的框架,它的核心是基于Reactor相关Api 实现的。相对于传统的Web 框架,他可以运行在诸如Netty,Undertow 及支持Servlet3.1的容器上。非阻塞式+函数式编程(Spring5 必须让你使用java8)

Spring Cloud Gateway 和 Zuul 的区别

Spring Cloud Gateway 具有如下特性:

基于Spring Framework5, Project Reactor 和 Spring Boot 2.0 进行构建

动态路由:能够匹配任何请求属性

可以对路由指定 Predicate (断言) 和Filter(过滤器)

集成Hystrix 断路器功能

集成Spring Cloud 服务发现

易于编写的Predicate (断言) 和Filter (过滤器)

请求限流功能

支持路径重写

Zuul 1.x 基于servlet 2.0 阻塞模型,在高并发的情况下效率低下

而SpringCloud Gateway 底层使用了webflux(Spring 5.0引入的新的响应式框架,区别于SpringMvc 它不需要依赖于Servlet) 而webflux底层又使用Netty 一个非阻塞高性能的网络通信框架,非常适用于高并发场景。

SpringCloud Gateway 工作的流程

路由:id+uri请求通过断言是否符合我的路由规则然后通过过滤器Filter在请求前和请求后做一些精细化的操作。

断言:参考 1.8 的Predicate (断言)

Filter过滤链:一堆

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值