当前位置: 首页 > news >正文

这4个微服务网关你了解吗?


#### 前言

在微服务中,由于以业务划分会有很多个子模块。在面对外部系统的API调用时如果每个请求都直接到达对应的子模块接口,那么这样的请求会有很多个,尤其在业务庞杂的大型电商或支付系统中,对外和对内会形成无数个调用链路错综复杂。有时还要面对例如:鉴权、安全保护、限流控制等。因此,有一个统一用来管理和控制外部访问的API接口就会显得常重要。所有的外部请求都首先到达这个API接口,再经由这个接口API经过路由转发到达具体的某个业务系统。从而达到代理请求、统一管理控制的目的,这个API接口就叫API网关。

#### 一、网关简介

1.1 什么是网关?

网关的角色是作为一个API架构,用来保护、增强和控制对于API服务的访问。它是一个处于应用程序或服务(提供REST API接口服务)之前的系统,用来管理授权、访问控制和流量限制等。这样REST API接口服务就被网关保护起来,对所有的调用者透明。因此,隐藏在API网关后面的业务系统就可以专注于创建和管理服务,无需关心这些策略性的请求。

1.2 API网关的四大职能

- 请求接入:作为所有API接口服务请求的接入点,管理所有的接入请求。
- 业务聚合:作为所有后端业务服务的聚合点,所有的业务服务都可以在这里被调用。
- 中介策略:实现安全、验证、路由、过滤、流控、缓存等策略,进行一些必要的中介处理。
- 统一管理:提供配置管理工具,对所有API服务的调用生命周期和相应的中介策略进行统一管理。

1.3 API网关的关注点

API网关并不是一个典型的业务系统,而是一个为了让业务系统更专注于业务本身,给API服务提供更多附加能力的一个中间层。

主要考虑许下几个目标:

- 开发维护简单,节约人力成本和维护成本。即应选择成熟的简单可维护的技术体系。
- 高性能,节约设备成本,提高系统吞吐能力。需要对API网关的特点进行一些特定的涉及和权衡。
- 保持大规模的inbound请求接入能力(长短链接),比如基于Netty实现。
- 最大限度地复用outbound的HTTP连接能力,比如基于httpClietn4的异步实现。
- 方便灵活地实现安全、验证、过滤、聚合、限流、监控等各种策略。

#### 二、四大网关对比

2.1 四大主流网关介绍

目前流行的用得较多的几个网关:Zuul 2、SpringCLoud Gateway、Kong、OpenResty。他们都基于各自不同的语言实现,也都有着各自不同的优缺点。

四大网关对比网关语言限流鉴权监控易用性可维护性成熟度SpringCoud Gateway基于Java语言可以通过IP,用户,集群限流,提供了相应的接口进行扩展。普通鉴权OAuth 2.0GateWay Mettries  Filter简单易用Spring系列可扩展性强,易配置可维护性好Spring社区成熟,资源少Zuul 2基于Java语言可以通过配置文件配置集群限流和但服务限流,也可通过Filter实现限流扩展。Filter中实现Filter中实现参考资料少可维护性差开源不久,资源少OpenResty基于Nginx+Lua需要Lua开发需要Lua开发需要开发几单易用,但是需要Lua开发可维护性差,需要大量lua脚本成熟,资料多Kong基于Nginx+Lua根据秒、分、时、天月、年,根据用户进行限流。可在源码的基础上进行开发。普通鉴权,Key Auth鉴权,HMAC,OAuth2.0k可上报datadog,记录请求数量、请求数据量、应答数据量、接收与发送的时间间隔、状态码数量、Kong内运行时间j简单易用,API转发通过管理员接口配置,开发需要Lua可维护性差,需要大量lua脚本库相对成熟,插件开源#### 总结

基于不同的业务场景,选择不同的API网关组件,应对不同的系统流量和并发数。不同的业务场景,在技术选型上也是及其重要的一环。例如:Kong的性能虽然非常不错,适合做流量网关,但是对于复杂的业务系统不建议用Kong,因为会给系统的性能带来缺陷。再如SpringCloud GateWay/Zuul2对于Java技术栈来说比较方便,但是对于lua开发语言不方便。

 

既然都看完了整篇文章,相信对你一定有所帮助。原创不易,远离伸手党。

点击下方【打赏】小编,或者关注公众号给予支持,你们的每一份鼓励都将是小编伟大的动力。

![](https://i-blog.csdnimg.cn/blog_migrate/e101c329192fc0f12296de7209af895e.jpeg)同名原创公众号:  程序大视界

http://www.jsqmd.com/news/772302/

相关文章:

  • ComfyUI-OpenClaw:为AI工作流注入安全灵魂的自动化控制层
  • 使用OpenClaw配置Taotoken作为其Agent工作流的模型供应商
  • Spring、SpringMVC和SpringBoot的关系,看这一篇就够了
  • Spicetify配置管理终极指南:3步打造个性化Spotify体验
  • 大学生HTML期末大作业——HTML+CSS+JavaScript音乐网站(RAZA)
  • 终极移动端设计调试指南:VisBug如何在不同设备尺寸下完美适配
  • Locale Remulator:彻底解决多语言软件乱码问题的3步终极方案
  • 3分钟学会B站视频转文字,你的学习效率提升5倍秘诀
  • SpringCloud与Dubbo的比较
  • 2026年木把手工厂直通热线:匠心工艺,品质保证 - GrowthUME
  • 自律的程序员生活是什么样的?
  • 开源ChatGPT WebUI:自托管部署、核心功能与安全实践全解析
  • Docker Compose环境管理:从原理到实战的自动化部署指南
  • 5步解锁AI绘画魔法:图形化训练你的专属艺术模型
  • 别再死记硬背了!用程序员思维图解逻辑推理:联言、选言、假言的等价转换(附记忆口诀)
  • 芙蓉镇美食推荐,芙蓉镇口碑餐厅推荐 - GrowthUME
  • 从无名到有名,老子这句话给 SAP CAP 开发的一条架构心法
  • HashMap都在用,原理你真的了解吗?
  • 终极指南:Can-I-Take-Over-XYZ指纹库解析135+云服务漏洞状态
  • 基于提示词工程的AI智慧日报系统:零代码实现跨文化历史故事生成
  • Ribbon和Feign客户端负载均衡及服务调用
  • fastbook商业应用:AI项目商业化落地终极指南
  • 终极指南:Vue3后台管理系统状态管理进阶——复杂业务逻辑的优雅处理方案
  • YC - 35 背心无人 AI 工作站:服装生产的变革者,是噱头还是实力?
  • 别再为对账差异头疼了!SAP序时账导出避坑指南:BKPF/BSEG字段选择与凭证状态排除
  • 单体架构,分布式系统的差别在哪里?
  • 基于fortbot框架的Python量化交易机器人开发实战指南
  • SpringCloud分布式配置中心浅谈
  • 无名入库,有名成器,老子这句话放进 SAP HANA 开发里,是一套从混沌数据到可信模型的修炼法
  • 2026年5月苏州昆山发电机租赁最新排行榜:实测top4家出租服务商合规资质与服务对比 - 奋斗者888