还有必要学习Zuul么?
一、什么是API网关
在开始讲解Spring Cloud GateWay之前呢,有必要说明一下什么是API网关。网关这个词,最早是出现在网络设备中,比如在彼此隔离的两个局域网中间的起到路由功能、隔离功能、安全验证功能的网络设备,通常被称为“网关”。
在软件开发方面,网关通常是用来隔离用户端和服务端的软件应用,通常被称为API网关。
所以使用API的好处是:
- 面向前端开发人员更加友好,前端开发人员面向的入口减少,便于维护
- 服务访问的认证鉴权更加方便,可以放在API网关统一去做。避免分散造成的开发及维护成本。
- 访问日志、限流等公共服务也可以在网关上集中完成。避免分散造成的开发及维护成本。
说了API网关的这么多好处,那么有没有坏处呢?也是有的,而且很重要。
- 当你使用了API网关之后,所有的请求都要多一次转发,造成一定程度上的响应时长的延长
- 当你使用了API网关之后,意味着网关作为流量入口需要承担比微服务更多的流量负载。所以网关本身的架构性能及稳定性非常重要。
虽然我们可以在网关的前面再去加一层nginx或者haproxy等负载均衡器,但是仍旧很难改变网关在一定程度上的流量集中的问题。
所以,笔者在很多场合下呼吁不要滥用微服务网关。你要权衡一下你当前的架构是否真的需要一个网关。衡量性能、稳定性以及维护成本之间关系,去决定要不要使用服务网关。
一、简介
Spring Cloud GateWay 是由Spring 官方社区开发的API 服务网关,在新一代的开发技术中使用到了Spring WebFlux的全新的响应式的非阻塞IO框架。相对于Spring Cloud第一代的网关组件zuul,性能有了长足的进步(宣称性能提升1.6倍)。WebFlux底层是基于高性能的非阻塞IO通信框架Netty实现的。
核心功能特性
笔者在上一节已经为大家介绍过,API服务网关的主要作用有三个:
- 统一流量入口,面向前端更加友好。减少分散入口配置,降低客户端与服务端的耦合度。
- 统一认证鉴权,避免多个服务分散鉴权造成的维护与开发的成本升高
- 访问日志、限流、过滤、缓存、监控等公共服务也可以在网关上集中完成。避免分散造成的开发及维护成本
二、聊一聊Zuul
正如笔者所说网关本身的架构性能及稳定性非常重要。然而性能就是Zuul的短板,因为它是基于servlet的阻塞IO模型开发的(下一节我会专门介绍Zuul和Spring Cloud GateWay IO模型的差异)。
- Zuul 1.0在netflix官方已经进入了维护阶段,netflix对Spring Cloud社区的支持也已经基本属于“88了您哎”的状态
- 虽然Netflix很早就宣称了要对zuul进行升级改造,也就是Zuul 2.0,但是目前与Spring Cloud的整合也处于难产状态
- 基于以上的原因,Spring 社区自己开发了Spring Cloud gateWay。采用了spring 官方的响应式非阻塞框架webflux。官网测试结果性能是Zuul的1.6倍。
综上所述:笔者觉得目前Zuul已经没有任何学习的必要了。
标签:网关,Zuul,Spring,入口,API,三大,Cloud From: https://www.cnblogs.com/nextgg/p/17191973.html