每天响应数亿次请求,腾讯云如何提供高可用API服务? https://mp.weixin.qq.com/s/OPwlHcqkaTT_gcwHfr5Shw
一、API 网关的定义与职能
有了 API 网关之后,各个 API 服务提供团队可以专注于自己的业务逻辑处理,而其他公共功能可以交给API网关。
3. API 网关需要覆盖哪些功能?
首先做为一个网关,可以处理一些非业务的逻辑,比如安全,流控,请求路由等等。其次能够管理API的全生命周期,包括创建、维护、发布、运行、下线等功能。如下图所示:
二、腾讯云 API 3.0
腾讯云每天有数亿的 API 请求,百万级的用户,数百款产品,为了提供更加安全,规范,易用,高可用的 API 服务,腾讯云 API 应运而生。
腾讯云 API 自 2013 年诞生以来,经过了 1.0->2.0->3.0 的迭代演变,1.0 已经完全退出了历史舞台,2.0 也在逐步退出历史的舞台,腾讯云 API 3.0 (以下简称云API 3.0)经历了 2 年多的发展,已经形成了一整套具备 API 生命周期管理,请求接入,业务聚合,安全可流控的 API 产品,已成为腾讯云的 API 标准。
云 API 的产品形态如下图所示:
提供了控制台,SDK,命令行,小程序,API 等多种接入方式,为 Iaas,Paas,Saas 以及平台服务提供了统一的对外体验。
云 API 包含了云 API 核心框架,云 API 管理系统和云 API 监控运营系统三大模块。系统架构如下图所示:
其中,API 核心框架承载着海量流量的输入输出,流控,协议转换,路由等;API 管理系统是业务录入接口,负责进行 API 全生命周期管理和路由策略配置;API 监控运营系统提供了 API 各种运营数据以及画像。
云 API 3.0 覆盖以下功能:
1. 安全性
HTTPS 支持,保证 API 的安全通讯。有基础的抗 DDos 攻击的能力,采用安全可靠的认证方式,可使用 SecretId + SecretKey 的方式或者 token 的方式进行用户认证。
支持 V1,V3(TC3-HMAC-SHA256)多种签名方案,更加安全,支持内部调用和全程票据功能,进一步加强了安全性。
2. 接口规范
云 API 3.0 制定并落地了统一的接口规范,得到用户的一直好评。之前的云 API 1.0,2.0 没有统一的规范,接口定义百花齐放。比如有的接口使用匈牙利命名法,有的接口使用大小驼峰,有的接口使用全小写如 resource_id。
接口类型也是灵活可变,可以从 int 转成 string,可返回也可不返回,用户的使用体验不统一,也因此遇到很多问题。比如接口名理解门槛高,返回参数和文档不一致无所适从,业务不兼容修改参数造成存量用户调用失败等等。
为此,云 API 3.0 的设计理念就是要充分保证用户的体验,制定了一整套统一的接口的标准规范,使得文档与接口行为必须严格一致,用户不需要根据不同的接口去理解和适配规则,充分保障用户的体验。