API网关

简介: 本文系统讲解了API网关的核心概念与作用,结合SpringBoot+Dubbo+Zookeeper架构引入Soul网关的实践,深入剖析API网关的本质:作为请求统一入口,实现协议转换、路由、鉴权、限流、熔断降级等功能。通过对比京东、阿里等企业网关方案,展现其在微服务架构中的关键价值。

在前面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

目录
相关文章
|
人工智能 搜索推荐 算法
玩转通义星尘:体验定制化多样角色能力
在杭州云栖大会上,阿里云对外展示了一款个性化角色创作平台——**通义星尘**,其基于大规模高质量个性化对话数据,采用分阶段的个性化训练策略,使得模型在保持通用能力的基础上,延伸出拟人、具有情感、鲜明语言风格的能力,在角色的个性、风格遵循上具有更强的指令遵循能力。那么其能力展现到底如何?我们又能玩出哪些花样呢?今天开始测试通义星尘,争取年前把8个垂直模型都测试一遍,,加油!本文为原创,未经许可请勿搬运。
玩转通义星尘:体验定制化多样角色能力
|
2月前
|
数据可视化 PyTorch 算法框架/工具
ComfyUI电脑版EXE文件下载、安装、配置、使用全流程图解,点击可直接运行
ComfyUI是Stable Diffusion最流行的可视化工作流工具,以节点连线方式精准控制文生图、图生图、ControlNet等全流程。官方推出免命令行的Comfy Desktop桌面版,内置环境,一键安装启动,新手也能快速上手。(239字)
|
1月前
|
存储 弹性计算 运维
个人建站阿里云服务器一年要花多少钱?最新整理阿里云轻量和ECS价格表
2026年阿里云个人建站服务器最低38元/年!轻量应用服务器(2核2G+200M峰值带宽+40G盘+不限流量)支持5个域名备案;ECS经济型99元/年(2核2G+3M固定带宽),企业款199元/年(2核4G+5M+80G)。新老用户同享,续费不涨价。
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
1658 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
数据采集 机器学习/深度学习 人工智能
面向 MoE 和推理模型时代:阿里云大数据 AI 产品升级发布
2025 AI 势能大会上,阿里云大数据 AI 平台持续创新,贴合 MoE 架构、Reasoning Model 、 Agentic RAG、MCP 等新趋势,带来计算范式变革。多款大数据及 AI 产品重磅升级,助力企业客户高效地构建 AI 模型并落地 AI 应用。
|
人工智能 弹性计算 自然语言处理
云速搭 AI 助理发布:对话式生成可部署的阿里云架构图
阿里云云速搭 CADT(Cloud Architect Design Tools)推出智能化升级——云小搭,一款基于大模型的 AI 云架构助手,致力于让每一位用户都能“动动嘴”就完成专业级云架构设计。
1388 31
|
弹性计算 安全 数据安全/隐私保护
阿里云服务器ECS企业安全组和普通安全组有什么区别?安全组全解析
阿里云ECS安全组分普通与企业级两种,均免费。普通安全组支持经典网络和VPC,最多6000个私网IP,组内默认互通,规则灵活,适合中小规模应用;企业级安全组仅支持VPC,最高支持65536个私网IP,安全性更高,入出方向默认全拒,组内隔离不可改,适用于大规模、高安全需求场景。两者在容量、规则、控制策略及适用环境上差异显著。
594 0
|
分布式计算 运维 DataWorks
松柏之志,下聚百川-松下中国阿里云大数据实践
松下集团在中国及东北亚地区拥有有64家法人公司,员工人数约4万人,业务范围涉及研究开发,养老、铸件、汽车、车载、能源、电池等多个方面,这些多元化的业务组合为松下常年可持续性发展提供坚实保障。中国地区的松下已有30多年的历史,集合了研发、生产、制造、流通、销售、服务于一体。 互联网浪潮下,松下作为百年传统制造业企业,在务实的坚实基础上进行创新,本文将围绕数字化改革中所遇挑战,松下数据治理实践及未来期待三部分进行说明。
102153 13
松柏之志,下聚百川-松下中国阿里云大数据实践

热门文章

最新文章