饿了么全自动API网关Stargate cluster | 掘金 x 饿了么技术沙龙

2,841 阅读3分钟

编者按:本文系饿了么架构师-孙立伟在掘金技术社区和饿了么主办的《掘金 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