一、什么是API网关
API 网关是一种将客户端接口与后端实现分离的方式。当客户端发出请求时,API 网关会将其分解为多个请求,然后将它们路由到正确的位置,生成响应,并跟踪所有内容。
电子商务站点可能使用 API 网关为移动客户端提供端点,以便通过单个请求检索所有产品详细信息。它调用各种服务,如产品信息和评论,并组合结果。
二、API网关作用
API 网关通常会处理跨 API 服务系统使用的常见任务,例如用户身份验证、速率限制和统计信息。
API 服务最基本的作用是接受远程请求并返回响应。但是,现实却并非如此简单。我们可以想象一下在托管 API 时需要考虑的一些问题。
- 希望保护 API 免受过度使用和滥用时,会选择身份验证服务和限流措施。
- 希望了解调用方如何使用 API,添加了分析和监控工具。
- 计费时如何连接到计费系统。
- 服务如果采用微服务架构,单个请求可能需要调用多个不同的应用。
面对这些问题,API网关的挑战是为调用方提供简单而可靠的体验。
API 网关是 API 管理系统的一部分。API 网关会拦截所有传入的请求,然后通过 API 管理系统将其发送出去。
API 网关的工作因实施不同而异。一些常见的功能包括:身份验证、协议转换、路由、限流、熔断降级、隔离、缓存、计费、日志、监控、分析、策略、警报和安全防护。
三、API网关对比
目前商用的API网关供应商数量较多,在此仅选择目前在云计算领域综合实力比较靠前的三个厂商进行调研对比,分别是阿里云、华为云、腾讯云的API网关。这里不考虑开源API网关。
1.功能对比
2.费用及使用限制
因共享实例不太适合用来做生产环境的API网关,所以对比数据均采用专享实例数据。
四、API网关选型分析
1.功能对比分析
API网关所必须的功能来说,各个厂商基本都具备,而且差异性不大。相对来说差别比较大的有以下几个方面,详见表格:
2.API网关选型分析
对于API网关的选型,如果当前主要业务已经在几个云厂商上,而且使用的规模比较集中,那跟着当前业务选择云厂商比较合适,毕竟配套的服务可以让相关应用使用起来更为得心应手。
如果不考虑上面的因素,那可以考虑下面的几点建议:
对应几个云厂商的API网关相关数据,对于费用比较有强制要求的,可以对比付费版本及使用限制情况,选择合适的厂商和付费版本;
如果有大量文件或者日志数据需要通过API上传,则推荐使用腾讯云API,毕竟10G限制的优势简直是唯我独尊;
对文档支持比较有要求,或者移动端开发需求比较大的,阿里云相对更有优势;
如果希望有更强大的API使用相关的监控,则阿里云的监控和链路跟踪比较突出;
如果没有以上的任何问题需要考虑,或者IaaS也在选型中,那下面提供一份2021年中国大陆云基础设施的市场比例给读者以参考: