Spring Cloud GateWay学习之微服务网关Zuul、Gateway、nginx的区别和Spring Cloud GateWay的使用。

Spring Cloud GateWay 是什么

网关,Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。

GateWay整体流程

image

Spring Cloud GateWay 作用

  • 协议转换,路由转发
  • 流量聚合,对流量进行监控,日志输出
  • 作为整个系统的前端工程,对流量进行控制,有限流的作用
  • 作为系统的前端边界,外部流量只能通过网关才能访问系统
  • 可以在网关层做权限判断
  • 可以在网关层做缓存

微服务网关Zuul、Gateway、nginx的区别

zuul:
  • 是Netflix的,早期在微服务中使用较广泛,是基于servlet实现的,阻塞式的api,不支持长连接。
  • 只能同步,不支持异步
  • 不依赖spring-webflux,可以扩展至其他微服务框架。
  • 内部没有实现限流、负载均衡,其负载均衡的实现是采用 Ribbon + Eureka 来实现本地负载均衡。
  • 代码简单,注释多,易理解。
Gateway:
  • 是springcloud自己研制的微服务网关,是基于Spring5构建,,能够实现响应式非阻塞式的Api,支持长连接。
  • 支持异步
  • 功能更强大,内部实现了限流、负载均衡等,扩展性也更强。Spring Cloud Gateway明确的区分了 Router 和 Filter,并且一个很大的特点是内置了非常多的开箱即用功能,并且都可以通过 SpringBoot 配置或者手工编码链式调用来使用。
  • 依赖于spring-webflux,仅适合于Spring Cloud套件。
  • 代码复杂,注释少。
nginx:
  • C语言编写,采用服务器实现负载均衡,高性能的HTTP和反向代理web服务器。

Nginx适合于服务器端负载均衡,Zuul和gateway 是本地负载均衡,适合微服务中实现网关。Spring Cloud Gateway 天然适合Spring Cloud 生态。

Spring Cloud GateWay 的使用

Spring Cloud GateWay概念

Route(路由): 路由网关的基本构建块。 它由ID,目标URI,谓词集合和过滤器集合定义。 如果聚合谓词为真,则匹配路由。

Predicate(断言): 这是一个Java 8函数谓词。 输入类型是Spring Framework ServerWebExchange。 这允许开发人员匹配HTTP请求中的任何内容,例如标头或参数。

Filter(过滤器): 这些是使用特定工厂构建的Spring Framework GatewayFilter实例。 这里,可以在发送下游请求之前或之后修改请求和响应。

1. 引入依赖&#
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值