编者按:本文系饿了么架构师-孙立伟在掘金技术社区和饿了么主办的《掘金 x 饿了么技术沙龙 | 架构实践专场》 活动上的分享整理。这次讲师带来了哪些干货?本人有幸参与本次活动,将讲师分享内容进行了一个小总结,希望能帮到未能到场的同学们~受限本人水准,总结可能稍有偏差或者不到位不清晰之处,还望见谅并请指出~
演讲内容简介:Stargate Cluster 是一个基于容器的创新型微服务网关,集成了API的权限认证和审计管理。目前已经在饿了么大规模使用,并与另一个产品API Portal集成,自动生成了HTTP和SOA的接口文档,极大的提高了业务系统的研发效率。
基本概念
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,应用将自身的服务能力封装成API,并通过API网关开放给用户调用。
API包括基本信息、前后端的请求路径和参数以及请求相关协议。
API分组
API分组是同一种业务API的集合,一个API分组可视为一种服务(如征信查询服务)。API开发者以API分组为单位,管理分组内的所有API。
环境
环境定义了API生命周期管理过程中的不同状态,API可以被发布到不同的自定义环境中。
流量控制
流量控制支持从用户、应用和时间段等维度限制对API的调用次数,保护后端服务。
应用
应用(APP)定义了一个API调用者的身份。可以将一个API授权给多个应用,也可以将多个API授权给同一个应用。
概括: API网关不是一个业务系统,它是一个类似于请求转发的系统,它的存在是控制请求的业务权限统一化管理的。
Stargate Cluster 功能特点
• 将RPC服务⾃动映射成HTTP API服务
• 深度整合发布系统, HTTP服务实现⾃动化部署
• 持Groovy脚本
• 每个业务都是独⽴的Docker集群,互不影响
cluster会把接口转成http接口提供给前端,如下图
上图的前端是包括web app 第三方,通过HTTP接口调用Stargate cluster,Stargate cluster进行一系列的鉴权校验,权限控制等,然后把流量打到具体的后端业务系统
Stargate cluster支持http和cpc,开发者只需要提交接口定义,前端就可以进行工作
提交后cluster提供全自动化部署,自动部署支持测试环境,线上环境,cluster还支持自动生成HTTP文档,省去开发人员编写文档的时间
cluster好处:
每个公司都在做API网关,对比饿了么跟某云厂
优点:
1,饿了么实现了自动化部署上线
2,自动转义HTTP接口
3,支持HTTP和RPC
缺点:
1,没有SDK
2,不知道目前承载的QPS