API 网关的功能用途及实现方式

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
云原生 API 网关,700元额度,多规格可选
简介: API 网关的功能用途及实现方式

1. API 网关诞生背景

前言

API 经济生态链已经在全球范围覆盖, 绝大多数企业都已经走在数字化转型的道路上,API 成为企业连接业务的核心载体, 并产生巨大的盈利空间。快速增长的 API 规模以及调用量,使得企业 IT 在架构上、模式上面临着更多的挑战。

API 是什么

API 网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API 网关封装了系统内部架构,为每个客户端提供一个定制的 API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API 网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供 REST/HTTP 的访问 API。服务端通过 API-GW 注册和管理服务。

1. API 开放数量不断增加

毋庸置疑,随着企业的数据化进展,微服务改造,不同领域的 API 层出不穷,早在 2014 年 ProgrammableWeb 便预测 API 矢量可达到 100,000 到 200,000,并会不断增长。API 开发数量的增加给边缘系统带来机会,也随即演变了 API 网关的出现。大规模的 API 管理系统成为核心的发展趋势。

The API Economy Disruption and the Business of APIs,Nordic APIs

2. API 服务平台多样化

最初的 API 主要针对不同单体应用的网络单元之间信息交互,现已演变到服务间快速通讯。随着人工智能 EI,IOT 的不断演进,依赖 API 的平台不断更新,如 Web,Mobile,终端等,未来将会出现更多的服务体系。包括不限于:

  • 浏览器
  • IOS
  • Android
  • macOS
  • Windows
  • Linux
  • IOT
  • 其他移动端
  • 小程序
  • 终端设备(如智慧零售、工业的终端等)

3. 逐步替换原有企业的服务模式,API 即商品

卖计算,卖软件,卖能力,最终的企业的销售模式会逐步转变,能力变现,释放数据价值,依托不同的 API 管理平台创造新的盈利。

API 网关诞生背景

随着 API 的整体趋势发展,每个时期都面临着不同的挑战,架构也随之变化,具体如下图:

  1. 1960-1980:阿帕网、ATTP、TCP
  2. 1980-1990:点对点
  3. 1990-2000:消息中间件、ESB(企业服务总线,Enterprise service bus),SOA(面向服务的架构)
  4. 2000 至今:Integration as a service,RESTful services,API 管理,云上编排

API economy From systems to business services

从最原始的“传输协议通讯” -> “简单的接口集成” -> “消息中间件” -> “标准 REST”, 可以看到 API 的发展更趋向于简洁, 集成,规范化, 这也促使更多的系统边界组件不断涌现,在承载了万亿级的 API 经济的背景下, API 网关应运而生。

如果没有合适的 API 管理工具, API 经济不可能顺利开展。 同时提出了对于 API 管理系统的生命周期定义: planning(规划), design(设计), implementation(实施), publication(发布),operation(运维), consumption(消费), maintenance(维护) and retirement of APIs(下架)

如果没有合适的 API 管理工具, API 经济不可能顺利开展。 同时提出了对于 API 管理系统的生命周期定义: planning(规划), design(设计), implementation(实施), publication(发布),operation(运维), consumption(消费), maintenance(维护) and retirement of APIs(下架)

Magic Quadrant for Full Life Cycle API Management,Gartner, 2016-10-27

2. API 网关核心功能

  • API 生命周期管理
  • planning(规划)
  • design(设计)
  • implementation(实施)
  • publication(发布)
  • operation(运维)
  • consumption(消费)
  • maintenance(维护)
  • retirement(下架)
  • API 网关基础功能
  • 认证
  • 鉴权
  • 服务发现和集成
  • 负载均衡
  • 日志
  • 链路追踪
  • Monitoring
  • 重试
  • 限流
  • QoS
  • 熔断器
  • 映射
  • 缓存
  • Header、query 字符串 等 转义
  • API 文档
  • API 测试
  • SDK 生成
  • API 多版本、多环境管理
  • 插件
  • API 集中式 metrics、logging、tracing 管理
  • 安全
  • HTTPS
  • IP 黑白名单
  • 高可用
  • 可热重启
  • 高性能
  • 可扩展性
  • 无状态横向扩展

3. API 网关的用途

OpenAPI

企业需要将自身数据、能力等作为开发平台向外开放,通常会以 rest 的方式向外提供。最好的例子就是淘宝开放平台、腾讯公司的 QQ 开发平台、微信开放平台。

Open API 开放平台必然涉及到客户应用的接入、API 权限的管理、调用次数管理等,必然会有一个统一的入口进行管理,这正是 API 网关可以发挥作用的时候。

微服务网关

在微服务架构中,有一个组件可以说是必不可少的,那就是微服务网关,微服务网关处理了负载均衡,缓存,路由,访问控制,服务代理,监控,日志等。

API 网关在微服务架构中正是以微服务网关的身份存在。

API 中台

上述的微服务架构对企业来说有可能实施上是困难的,企业有很多遗留系统,要全部抽取为微服务改动太大,对企业来说成本太高。

但是由于不同系统间存在大量的 API 服务互相调用,因此需要对系统间服务调用进行管理,清晰地看到各系统调用关系,对系统间调用进行监控等。

API 网关可以解决这些问题,我们可以认为如果没有大规模的实施微服务架构,那么对企业来说微服务网关就是企业的 API 中台。

4. API 网关的价值

通过 API 网关,可以封装后端各种服务,以 API 的形式,提供给各方使用。API 网关产品的优势总结如下:

  • API 全生命周期管理:协助开发者轻松完成 API 的创建、维护、发布、监控等整个生命周期的管理。
  • 丰富的服务治理能力:支持 API 限流,参数校验,元数据维护,SDK 生成,批量操作等能力,协助开发者高效管理服务。
  • 可观察性:通过 API 网关,支持对调用次数,前后端错误次数等丰富监控指标的可视和告警能力;通过全面的监控告警,保证用户服务的可用性。
  • 可运营性:支持 企业 OpenAPI 定价,账单等运营功能
  • 服务安全:通过接入多种认证方式,确保用户 API 的访问安全性;通过严格的流量控制,避免用户服务的过载。
  • 前后端业务解耦
  • 多类型后端打通

5. API 网关的实现方式

主流 API 网关

  • Istio(以及最新出的 Envoy Gateway)
  • Linkerd
  • NGINX 及其商业版
  • KONG
  • Traefik
  • APISIX
  • RedHat 3scale
  • Netflix Zuul
  • Spring Cloud Gateway
  • Amazon API Gateway
  • 阿里云 API 网关(其最新开源的 Higress 是基于 Envoy Gateway 的)
  • 腾讯云 API 网关
  • MuleSoft

OpenAPI

对于定位 OpenAPI 平台的 API 网关,目前只能选择专业的 API 网关作为解决方案。

微服务网关

对于定位为「微服务网关」的 API 网关,业务有多种实现方式:

Service Mesh

典型的如 Istio,架构如下:

通用反向代理

基于 NGINX 或 NGINX + LUA + OpenResty 的实现。典型如:

  • NGINX Controller(API 管理、App 交付)
  • NGINX Plus(API Gateway,负载均衡,仪表板)
  • NGINX Ingress Controller
  • NGINX Service Mesh

API 网关框架

公有云解决方案

其实公有云的解决方案也是基于以上方案的定制化开发并产品化后发布到公有云上,主流的也是基于:NGINX + LUA + OpenResty, 或者最新的可能是基于 Istio Gateway 的实现

其他方案

  • 基于 Netty、非阻塞 IO 模型。
  • 基于 Node.js 的方案。这种方案是应用了 Node.js 的非阻塞的特性。
  • 基于 Java,如 MuleSoft
相关文章
|
18天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
33 4
|
27天前
|
人工智能 监控 负载均衡
一文详述:AI 网关与 API 网关到底有什么区别?
近年来,AI发展迅猛,大模型成为推动业务创新的关键力量。企业面临如何安全管理和部署AI应用的挑战,需设计既能满足当前需求又可适应未来发展的基础架构。AI网关应运而生,在集成、管理和优化AI应用中扮演重要角色。本文探讨AI网关与API网关的区别,分析AI系统为何需要专门网关,并提供选择合适AI网关的建议。AI网关不仅支持多种模型,还具备高级安全性和性能优化功能,有助于企业在复杂环境中灵活应用AI技术。
67 1
|
2月前
|
前端开发 JavaScript Java
SpringCloudGateway网关服务实现文件上传功能
SpringCloudGateway网关服务实现文件上传功能
158 6
|
2天前
|
前端开发 JavaScript Java
SpringCloudGateway网关服务实现文件上传功能
SpringCloudGateway网关服务实现文件上传功能
15 1
|
26天前
|
机器学习/深度学习 算法 Java
通过 Java Vector API 利用 SIMD 的强大功能
通过 Java Vector API 利用 SIMD 的强大功能
35 10
|
17天前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
87 0
|
3月前
|
人工智能 Cloud Native 安全
统一多层网关好处多,阿里云云原生 API 网关打造全能型网关
本文分享了作为一款全能型网关【云原生 API 网关】是如何帮助企业落地统一网关架构的。
7897 10
|
2月前
|
JSON 搜索推荐 API
深入了解亚马逊商品详情API:功能、作用与实例
亚马逊商品详情API接口由官方提供,允许开发者通过程序调用获取商品详细信息,如标题、价格等,适用于电商数据分析、搜索及个性化推荐等场景。接口名称包括ItemLookup、GetMatchingProductForId等,支持HTTP POST/GET请求,需提供商品ID、API密钥及其他可选参数。返回数据格式通常为JSON或XML,涵盖商品详情、分类、品牌、价格、图片URL及用户评价等。该接口对数据收集、实时推荐、营销活动及数据分析至关重要,有助于提升电商平台的数据处理能力、用户体验及商家运营效率。使用时需注册亚马逊开发者账号并申请API访问权限,获取API密钥后按文档构建请求并处理响应数据。
|
3月前
|
存储 JavaScript 前端开发
探索React状态管理:Redux的严格与功能、MobX的简洁与直观、Context API的原生与易用——详细对比及应用案例分析
【8月更文挑战第31天】在React开发中,状态管理对于构建大型应用至关重要。本文将探讨三种主流状态管理方案:Redux、MobX和Context API。Redux采用单一存储模型,提供预测性状态更新;MobX利用装饰器语法,使状态修改更直观;Context API则允许跨组件状态共享,无需第三方库。每种方案各具特色,适用于不同场景,选择合适的工具能让React应用更加高效有序。
70 0
|
3月前
|
JavaScript 网络协议 API
【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败