当前位置:首页 >知识 >使用开源 API 网关实现可伸缩 API 它就能解决你的关实相关问题

使用开源 API 网关实现可伸缩 API 它就能解决你的关实相关问题

2024-06-29 07:43:04 [百科] 来源:避面尹邢网

使用开源 API 网关实现可伸缩 API

作者:Bobur Umurzokov 开源 开发 本文介绍一种设计风格,使用伸缩但只要你理解其中的开源重点内容,它就能解决你的关实相关问题。

采用 Apache APISIX 的 API 主导架构。

使用开源 API 网关实现可伸缩 API 它就能解决你的关实相关问题

API 网关是开源一个单一节点,提供对 API 调用入口。关实网关聚合了所请求的使用伸缩服务,并相应传回合适的开源响应信息。为了令你的关实 API 网关有效地工作,设计一个可靠、使用伸缩高效且简洁地 API 至关重要。开源本文介绍一种设计风格,关实但只要你理解其中的使用伸缩重点内容,它就能解决你的开源相关问题。

使用开源 API 网关实现可伸缩 API 它就能解决你的关实相关问题

由 API 主导的关实方法

API 主导的方法是将 API 置于应用程序和它们需要访问的业务能力之间的通信核心,从而在所有数字通道上一致地交付无缝功能。API 主导的连接是指使用一种可重用、且设计得当的 API 来连接数据和应用程序的方法。

使用开源 API 网关实现可伸缩 API 它就能解决你的关实相关问题

API 主导的架构

API 主导的架构是一种架构方法,它着眼于实现重用 API 的最佳方式。它能解决以下问题:

  • 保护 API,使外界无法在未授权情况下访问 API
  • 确保应用程序能找到正确的 API 端点
  • 限制对 API 的请求次数,从而确保持续的可用性
  • 支持持续集成、测试、生命周期管理、监控、运维等等
  • 防止错误在栈间传播
  • 对 API 的实时监测和分析
  • 实现可伸缩和灵活的业务能力(例如支持 微服务 架构)

API 资源路由

实现一个 API 网关,把它作为与所有服务通信的单一入口点,意味着使用者只需要知道 URL 就能使用 API。将请求路由到相应的服务端点,并执行相应的功能是 API 网关的职责。

Image depicting the API routing traffic.

Image depicting the API routing traffic.

由于客户端应用程序不需要从多个 HTTP 端点调用功能,这个办法就减少了 API 使用者的操作复杂度。对每个服务来说,也不需实现一个单独的层级去实现认证、授权、节流和速度限制。大多数API 网关,如开源的 Apache APISIX,已经包含了这些核心功能。

API 基于内容的路由

基于内容的路由机制也使用 API 网关根据请求的内容进行路由调用。例如,一个请求可能是基于 HTTP 请求的头部内容或消息体被路由,而不只基于它的目标 URI。

考虑这样一个场景:为了将负载在多个数据库实例间均分,需要对数据库进行分区。当记录总数较大,单个数据库实例难以管理负载时,常常会用这个办法。

还有一个更好的办法,就是把记录在多个数据库实例间分散开来。然后你实现多个服务,每个不同的数据库都有一个服务,把一个 API 网关作为访问所有服务的唯一入口。然后,你可以配置你的 API 网关,根据从 HTTP 头或有效载荷中获得的密钥,将调用路由到相应的服务。

Image of the API gateway exposing a single customer.

Image of the API gateway exposing a single customer.

在上面的图表中,一个 API 网关向多个客户服务暴露一个单一的 /customers 资源,每个服务都有对应的不同数据库。

API 地理路由

API 地理路由解决方案根据 API 调用的来源将其路由到最近的 API 网关。为了防止地理距离导致的延迟问题(例如一个位于亚洲的客户端调用了位于北美地区的 API),你可以在多个地区部署 API 网关。对于一个 API 网关,你可以在每个区域使用不同的子域名,让应用程序基于业务逻辑选择最近的网关。因此 API 网关就提供了内部负载均衡,确保进入的请求分布于可用的实例之间。

Image of a DNS traffic management system.

Image of a DNS traffic management system.

通常使用 DNS 流量管理服务和 API 网关,针对该区域的负载均衡器解析子域名,定位到距离最近的网关。

API 聚合器

这项技术对多个服务执行操作(例如查询),并向客户端服务以单个 HTTP 响应的形式返回结果。API 聚合器使用 API 网关在服务器端代表使用者来执行这项工作,而非让客户端程序多次调用 API。

假定你有一款移动端 APP,对不同的 API 发起多次调用。这增加了客户端代码的复杂性,导致网络资源的过度使用,而且由于延迟性,用户体验也不好。网关可以接收所有需要的信息,可以要求认证和验证,并理解来自每个 API 的数据结构。它也可以传递响应的有效载荷,因此它们也会作为一个用户需要的统一负载传回移动端。

Image of an API gateway.

Image of an API gateway.

API 集中认证

在这种设计中,API 网关就是一个集中式认证网关。作为一个认证者,API 网关在 HTTP 请求头中查找访问凭据(例如不记名的令牌)。然后它借助于身份验证提供方执行验证凭据的业务逻辑。

Image of a tree showing API gateway's centralized authentication.

Image of a tree showing API gateway's centralized authentication.

使用 API 网关的集中式身份验证能解决很多问题。它完全取代了应用程序中的用户管理模块,通过对来自客户端应用程序的身份验证请求的快速响应来提高性能。Apache APISIX 提供了一系列插件,支持不同的 API 网关认证方法。

Image showing Apache ASPISIS and various plugins.

Image showing Apache ASPISIS and various plugins.

API 格式转换

API 格式转换是通过同一传输方式将有效载荷从一种格式转换为另一种格式的能力。例如,你可以通过 HTTPS 从 XML/SOAP 格式转换为 JSON 格式,反之亦然。API 网关提供了支持 REST API 的功能,可以有效地进行负载和传输的转换。例如,它可以把消息队列遥测传输(MQTT)转换为 JSON 格式。

Image depicting APISIX transfers.

Image depicting APISIX transfers.

Apache APISIX 能够接收 HTTP 请求,对其进行代码转换,然后将其转发给 gRPC 服务。它通过 gRPC Transcode 插件获取响应并将其以 HTTP 格式返回给客户端。

API 的可观察性

现在,你知道 API 网关为进入各种目的地的流量提供了一个中心控制点。但它也可以是一个中心观察点,因为就监控客户端和服务器端的流量来说,它有独特的资格。为了收集监测工具所需要的数据(结构化日志、度量和跟踪),你可以对 API 网关作出调整。

Apache APISIX 提供了 预先构建的连接器,因此你可以跟外部监测工具结合使用。你可以利用这些连接器从你的 API 网关收集日志数据,进一步获得有用的指标,并获取完整可见的服务使用情况。

API 缓存

API 缓存通常在网关内部实现。它可以减少对端点的调用次数,同时通过缓存上游的响应,改进了请求延迟的情况。如果网关缓存对请求资源有一个新副本,它会直接使用这个副本来响应这个请求,而不必对端点发出请求。如果缓存数据不存在,就将请求传到目标上游服务。

Image depicting how the API gateway cache functions.

Image depicting how the API gateway cache functions.

API 错误处理

由于各种原因,API 服务可能会出错。在这种情况下,API 服务需要有一定的弹性,来应对可预见的错误。你也希望确保弹性机制能正常工作。弹性机制包括错误处理代码、断路器、健康检查、回退、冗余等等。新式的 API 网关支持各种常见错误处理功能,包括自动重试和超时设置。

Image depicting some of the many mechanisms that the modern API Gatway can support.

Image depicting some of the many mechanisms that the modern API Gatway can support.

API 网关作为一个协调器,它会根据各方面情况来决定如何管理流量、将负载均衡发送到一个健康的节点,还能快速失败。当有异常状况,它也会向你发出警示。API 网关也保证路由和其他网络级组件能协同将请求传给 API 进程。它能帮助你在早期检测出问题,并修复问题。网关的错误注入机制(类似于 Apache APISIX 使用的那种)可用于测试应用程序或微服务 API 在各种错误发生时的弹性。

API 版本管理

版本管理是指定义和运行多个并发的 API 版本的功能。这点也很重要,因为 API 是随着时间推移不断改进的。如果能对 API 的并发版本进行管理,那么 API 使用者就可以较快地切换到新的版本。这也意味着较老的版本可以被废弃并最终退役。API 也跟其他应用程序类似,无论是开发新功能还是进行错误修复,都存在演变的过程。

Image of using the API Gateway to implement API versioning.

Image of using the API Gateway to implement API versioning.

你可以使用 API 网关来实现 API 版本管理。版本管理可以是请求头,查询参数或路径。

APISIX 的网关

如果你需要令 API 服务可伸缩,就需要使用 API 网关。Apache APISIX 提供了必要的功能,可以实现健壮的入口,它的好处是显而易见的。它遵循 API 主导的架构,并且有可能改变客户端与托管服务交互的方式。

本文经作者许可,从 Apache APISIX 博客改编并转载。

责任编辑:庞桂玉 来源: Linux中国 开源API

(责任编辑:综合)

    推荐文章
    • 股票熔断什么意思?上证指数跌多少触发熔断?

      股票熔断什么意思?上证指数跌多少触发熔断?股票熔断什么意思?股票熔断是指自动停盘机制,当股指波幅达到规定的熔断点时,交易所为控制风险采取的暂停交易措施,具体是对标的物设置一个熔断价格,使合约买卖报价在一段时间内只能在这一价格范围内交易的机制。 ...[详细]
    • 谁让任志强如此任性 户外运动手机敢泡水

      谁让任志强如此任性 户外运动手机敢泡水任志强大叔又任性了一把。3月25日晚,任志强收到了一台印有自己名字的青橙手机VOGAV1,在微博上晒图并介绍:“刘春说这是防水的运动手机。我准备今晚放水池里先泡一夜试试。”对此,粉丝纷纷表示“任总好任 ...[详细]
    • 创业者如何坚持自己的“调调”

      创业者如何坚持自己的“调调”随着创业浪潮愈发猛烈的涌动,整个移动互联网行业似乎已经到了一个比拼规模、速度的疯狂节奏。如果你的用户量没有过千万,如果你的单轮融资额不超过千万美元,似乎都不好意思跟别人说自己在创业。就是这样一个疯狂的 ...[详细]
    • 百度领投优信1.7亿美金 助推“连接人和服务”创业

      百度领投优信1.7亿美金 助推“连接人和服务”创业今日,中国领先的互联网公司——百度宣布与KKR全球投资公司、蔻图资本管理公司以1.7亿美元的总金额,投资专注于互联网二手车交易的新兴创业公司优信集团。数据显示,2014年上半年优信集团的二手车拍卖平台 ...[详细]
    • 寰亚传媒(08075.HK)中期亏损收窄至1916万港元 每股亏损4.58港仙

      寰亚传媒(08075.HK)中期亏损收窄至1916万港元 每股亏损4.58港仙寰亚传媒(08075.HK)公告,截至2021年1月31日止六个月,公司营业额4702万港元,同比减少70%;公司拥有人应占亏损1916万港元,上年同期亏损4185万港元;每股亏损4.58港仙。营业额 ...[详细]
    • KTV不会死,反而会将娱乐进行到底

      KTV不会死,反而会将娱乐进行到底福建凯米网络科技公司简称K米)CEO 林剑宇互联网对传统行业的渗透与改变还没有彻底结束,移动互联网又带来了新一波的改革浪潮,而这一次,几乎所有的行业都不再选择逃避,而是审时度势,甚至主动拥抱——传统娱 ...[详细]
    • 无需等待,OPPO ColorOS2.1今起公测

      无需等待,OPPO ColorOS2.1今起公测4月7日,有消息人士曝光了OPPOColorOS2.1的全新UI,并获得了广大用户的好评,但是究竟什么时候才能让大众用户体验到这个全新的ColorOS,成为O粉最关注的事情。今天从OPPO内部得到消息 ...[详细]
    • 音频APP“凤凰FM”安卓6.0版发布,颜值超高!

      音频APP“凤凰FM”安卓6.0版发布,颜值超高!3月16日,音频App凤凰FM正式发布了安卓6.0版本。在各大安卓应用市场均可搜索“凤凰FM”下载、体验。iOS版本也即将在近日择期发布。业界一流的交互体验、近乎完美的视觉优化是凤凰FM6.0版本最大 ...[详细]
    • 正商实业(00185.HK)年度纯利跌32.0% 每股基本盈利为人民币7.04分

      正商实业(00185.HK)年度纯利跌32.0% 每股基本盈利为人民币7.04分正商实业(00185.HK)公布年度业绩,截至2020年12月31日止年度,公司收益约为人民币80.691亿元,较2019年减少约9.2%;毛利约为人民币17.463亿元,较2019年减少约23.6% ...[详细]
    • OPPO R7——做好手机,是一件本分的事

      OPPO R7——做好手机,是一件本分的事如果从产品阵列的角度,为当前的手机厂商排个序的话,那么OPPO一定属于排名靠后的一列。因为截至目前,OPPO的主要业务仍旧只有手机(要再多说些的话,或许还能包括在欧美市场销量颇佳的蓝光影音设备以及以V ...[详细]
    热点阅读