首页 > 其他分享 >还有必要学习Zuul么?网关的三大功能;统一入口,统一认证,请求路由转发

还有必要学习Zuul么?网关的三大功能;统一入口,统一认证,请求路由转发

时间:2023-03-08 14:57:48浏览次数:38  
标签:网关 Zuul Spring 入口 API 三大 Cloud

还有必要学习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

相关文章

  • E90-DTU系列无线数传电台网关与节点4gDTU通信教程
    以E90-DTU(400SL22-ETH)与E90-DTU(400SL22)为例实现网关与节点进行数据交换,其它频段或功率的网关/节点,其操作方式与该视频教程一致。第一步【安装网关】为网关安装天线电源......
  • E90-DTU系列无线数传电台网关与节点4gDTU通信教程
    以E90-DTU(400SL22-ETH)与E90-DTU(400SL22)为例实现网关与节点进行数据交换,其它频段或功率的网关/节点,其操作方式与该视频教程一致。第一步【安装网关】为网关安装天线电源......
  • 三大 Shader 编程语言(CG/HLSL/GLSL)
    什么是ShaderLanguageShaderLanguage的发展方向是设计出在便携性方面可以和C++、Java等相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”......
  • 三大主流平台开发桌面程序的七大优劣势详解
    三大主流平台开发桌面程序的七大优劣势详解2023-03-0114:19·工控自动化编程软件开发环境QT,MFC,WPF等相关的对比详解嗨,大家好,我是兆千图网络科技,很高兴站在这里跟大家分......
  • IP地址,主机号,网络号,子网掩码,网关,端口等相关概念
    IP地址=网络地址+主机地址,又称网络号和主机号构成。A类:以0开头,第1字节为网络地址+后3个字节主机地址组成,地址范围0.0.0.0~127.255.255.255。可用的A类网络有126个网络......
  • 与人沟通的三大策略
    我们常常会与一些人产生人际冲突,这种冲突不仅会让人焦虑不安,还会浪费大量时间,甚至会影响到工作。如何才能妥善处理复杂的人际关系?1、请记住,每个人看待事物的角度不一样每个......
  • JavaSE——面向对象三大特征之—多态
    多态的形式多态是继封装、继承之后,面向对象的第三大特性。多态是出现在继承或者实现关系中的。多态体现的格式:父类类型变量名=new子类/实现类构造器;变量名.方法......
  • 项目案例丨小疆RS232转PROFINET网关链接磁栅尺MAS-200与PLC的配置
    本案例是用北京小疆智控(北京)技术有限公司生产的GW-PN5102型RS232转PROFINET网关连接磁栅尺MAS-200与PLC的配置案例,用到设备为西门子S7-1200PLC,GW-PN5102型RS232转PROFINET......
  • 计讯物联5G千兆网关TG463赋能无人船应用方案,开启自动巡检的智能模式
    方案背景水电站、水库、堤坝等水利工程水下构筑物常年处于水下,并在复杂的水流环境下运行,难免会出现磨蚀、露筋等损伤,而传统的安全监测方式一般是通过潜水员检查上层水柱或......
  • Java——NIO三大核心部分
    在JavaNIO中,选择器(Selector)、通道(Channel)和缓冲区(Buffer)是三个核心组件。选择器:它允许一个单独的线程来监视多个输入通道。你可以注册多个通道使用一个选择器,然后使用......