什么是API网关

本文涉及的产品
AI 网关免费试用,400元 Serverless
简介: 本文系统阐述了API网关的核心概念与价值,结合SpringBoot+Dubbo+Zookeeper架构引入Soul等网关实践,解析其作为请求路由、协议转换、统一鉴权、限流熔断的枢纽作用,探讨主流网关如Zuul、Kong等技术实现与异步、限流、降级等关键能力,揭示为何API网关成为现代微服务架构不可或缺的一环。(238字)

在前面5章节,我们详细论述了如何在一个SpringBoot应用中,搭建Dubbo+Zookeeper,同时在此基础之上,引入了API GateWay-Soul(Soul只是API网关的一种,并非唯一也并非一定最优)。至少在使用层面上,我们有了基础的认知,在此基础之上,我们再回过头来看下,什么是API GateWay,以及他帮我们实现了什么?为什么现在越来越多的架构中都开始引入了API网关。
1.什么是API网关
可以简单理解为:他更像是一种思想,而不是一种具体的架构,在很多框架中都有体现,如国产的KONG,SOUL,SpringCloud中的ZUUL(NetFlix开源)都是网关的一种技术具体实现。
常见的API网关实现,其技术一般是依赖于:Netty + NIO + Servlet3.0 进行实现。
假设一种业务场景:服务1对外提供Http接口,同时依赖服务2的Dubbo协议接口,服务3的Http协议接口,服务4的SpringCloud协议,先不论接入的调试,至少我们项目在配置文件中,需要三个服务的地址或域名,每个环境都需要重新调试,对接三个系统。API网关就是帮助我们来解决这样一个场景的技术,我们不再需要单独调用每一个服务(当然还是可以单独调用的),只要将1,2,3,4服务全部暴露注册进网关,其余时候直接去网关请求就可以,网关负责转发,数据同步,请求对应的接口。既然可以完成请求,响应,转发,自然API网关就可以帮助我们实现鉴权,限流,熔断降级等效果。
一句话来说,API网关的功能就是接收并转发请求到实际的接口,然后将实际接口返回的数据返回给调用方。
2.为什么需要API网关
RPC协议转成HTTP
由于在内部开发中我们都是以RPC协议(thrift or dubbo)去做开发,暴露给内部服务,当外部服务需要使用这个接口的时候往往需要将RPC协议转换成HTTP协议。
请求路由
在我们的系统中由于同一个接口新老两套系统都在使用,我们需要根据请求上下文将请求路由到对应的接口。
统一鉴权
对于鉴权操作不涉及到业务逻辑,那么可以在网关层进行处理,不用下层到业务逻辑。
统一监控
由于网关是外部服务的入口,所以我们可以在这里监控我们想要的数据,比如入参出参,链路时间。
流量控制,熔断降级
对于流量控制,熔断降级非业务逻辑可以统一放到网关层。

3.常见API网关

京东
唯品会
有赞
阿里
Zuul
实现关键
servlet3.0
netty
servlet3.0
servlet3.0
servlet3.0
异步情况
servlet异步,rpc是否异步不清楚
全链路异步
全链路异步
全链路异步
Zuul1同步阻塞,Zuul2异步非阻塞

限流


平滑限流。最初是codis,后续换到每个单机的令牌桶限流。
1.基本流控:基于API的QPS做限流。2.运营流控:支持APP流量包,APP+API+USER的流控33.大促流控:APP访问API的权重流控。阿里开源:Sentinel
提供了jar包:spring-cloud-zuul-ratelimit。1.对请求的目标URL进行限流(例如:某个URL每分钟只允许调用多少次)。2.对客户端的访问IP进行限流(例如:某个IP每分钟只允许请求多少次)3.对某些特定用户或者用户组进行限流(例如:非VIP用户限制每分钟只允许调用100次某个API等)4.多维度混合的限流。此时,就需要实现一些限流规则的编排机制。与、或、非等关系。支持四种存储方式ConcurrentHashMap,Consul,Redis,数据库。

熔断降级


Hystrix

只支持服务级别熔断,不支持URL级别。
隔离

线程池隔离

信号量隔离

线程池隔离,信号量隔离
缓存

redis

二级缓存,本地缓存+Codis
HDCC 本地缓存,远程缓存,数据库
需要自己开发

泛化调用

http,https,http1,http2,二进制
dubbo,http,nova
hsf,dubbo,http,https,http2,http1
只支持http

相关文章
|
存储 人工智能 监控
一键部署 Dify + MCP Server,高效开发 AI 智能体应用
本文将着重介绍如何通过 SAE 快速搭建 Dify AI 研发平台,依托 Serverless 架构提供全托管、免运维的解决方案,高效开发 AI 智能体应用。
7186 64
|
2月前
|
安全 Go Windows
Goland 解决在windows上 Cannot run program “D:\atool\goexe\myApp.exe 无法进行正常调试问题
GoLand运行Go程序时遇“应用程序控制策略已阻止此文件”错误,主因是Windows安全机制拦截未签名的.exe。推荐两法:①右键属性→勾选“解除锁定”;②用gops关联已启动进程调试,彻底绕过拦截。(239字)
437 3
Goland 解决在windows上 Cannot run program “D:\atool\goexe\myApp.exe 无法进行正常调试问题
|
6月前
|
数据采集 存储 数据管理
元数据管理是什么?怎么管?
元数据管理是让数据成为真正资产的关键。它通过统一管理“关于数据的数据”,解决找数难、口径不一、追溯困难等问题,建立业务与技术间的共识,实现数据可发现、可理解、可信任,推动企业数据驱动落地。
|
3月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2026 年 1 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
|
5月前
|
缓存 安全 API
Gemini Enterprise中国落地技术路径解析与选型指南
随着Gemini在多模态与长上下文上的突破,中国企业加速引入其应用于金融、制造、电商等领域。但受限于数据合规、网络延迟等问题,直接调用海外API面临挑战。专业服务商由此兴起,通过AST动态脱敏、边缘加速(QUIC/HTTP3)、上下文缓存与语义路由等技术,解决合规、延迟与成本难题。穿扬科技凭借全栈技术成首选,114Cloud、APIHub、OpenRouter中国版及极速数据则各具场景优势,助力企业安全高效落地大模型应用。
620 4
|
监控 Apache
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
533 8
HAProxy的高级配置选项-Web服务器状态监测
|
人工智能 Cloud Native 安全
从云原生到 AI 原生,网关的发展趋势和最佳实践
本文整理自阿里云智能集团资深技术专家,云原生产品线中间件负责人谢吉宝(唐三)在云栖大会的精彩分享。讲师深入浅出的分享了软件架构演进过程中,网关所扮演的各类角色,AI 应用的流量新特征对软件架构和网关所提出的新诉求,以及基于阿里自身实践所带来的开源贡献和商业能力。
1179 102
|
安全 算法 Java
可重入锁,不可重入锁,死锁的多种情况,以及产生的原因,如何解决,synchronized采用的锁策略(渣女圣经)自适应的底层,锁清除,锁粗化,CAS的部分应用
可重入锁,不可重入锁,死锁的多种情况,以及产生的原因,如何解决,synchronized采用的锁策略(渣女圣经)自适应的底层,锁清除,锁粗化,CAS的部分应用

热门文章

最新文章