蚂蚁金服 mPaaS 服务端核心组件体系概述:移动 API 网关 MGS

根据《开篇 | mPaaS 服务端核心组件体系概述》,咱们已经初步了解 mPaaS 平台后端各组件的核心架构体系。前端

而在 mPaaS 服务端众多组件中,移动 API 网关 MGS 是链接移动客户端与服务端的组件产品。它简化了移动端与服务端的数据协议和通信协议,从而可以显著提高开发效率和网络通信效率,是整个 mPaaS 服务中的核心入口。算法

接下来咱们将着重围绕 mPaaS MGS 展开介绍,进一步了解这款能力有哪些特质:编程

为何须要移动API网关

| 移动网络接入架构演进小程序

image | left

传统的单应用架构在团队与业务增加,支撑多团队多业务并行研发方面愈加力不从心。伴随近年微服务架构风格的流行,愈来愈多的企业将自身服务微服务化,以前的大应用被拆分红为了多个分散的服务提供出来。与此同时,随着移动互联网、普惠金融等新机会的迅猛发展,企业愈来愈迫切地但愿将现有成熟的后端服务开放出去。后端

此时在面对复杂的移动网络环境,前有 Android/iOS/H5/小程序等多种前端须要接入,后有零零散散的各个微服务系统须要导出,就颇有必要有一套可适用于移动网络环境,高性能高可靠易使用,路由不一样类型前端与各个后端微服务,帮助各个服务提供统一的限流,缓存,安全,监控等处理的移动 API 网关作后端总入口。跨域

image | left

mPaaS MGS

| 现代化移动网络接入架构最佳实践缓存

mPaaS 上的移动 API 网关 MGS,来源于支付宝 App 多年亿级网络服务技术的积累。在蚂蚁内支撑了支付宝、口碑、网商、聚宝、香港版等多个 App 数百个服务上万个 API,常年保持 99.9999+% 高可用率,具备足够的稳定性。安全

做为移动网络技术中“客户端到服务端请求-响应模型”服务,经历了多年双11、双12、春节红包活动的海量请求考验。在蚂蚁金融云公有云与私有云上,也为 12306,广发银行,上海地铁等客户提供了高性能高可靠海量服务的支撑。服务器

image | left

MGS 底层利用 Netty 实现了高效的异步非阻塞服务,4c8g 单机 QPS 可达 1 万+/s。网络

前端支持 http / http2 / mmtp 等协议,支持 JSON / protobuf 等传输格式,支持客户端 RPC 与 H5 标准 Rest 请求,可普遍适用于各类终端请求接入。

同时,为了更好的支持云上客户已有业务的须要,MGS 后端支持了 HTTP / Dubbo / SOFA / HRPC / MPC 等异构后端,最大程度兼容业务原有服务,还能够用 MGS 提供的 SPI SDK 直接在 API 函数签名上使用注解注册到配置中心,经过服务发现免去手动注册 API 的繁琐。

image | left

MGS 还内置了简洁易用的 Web 管控页面,能轻松管理租户内 App 全局与各个 API 的功能配置,包括__配置签名校验 / 结果缓存 / 超时设置 / API 限流 / API Mock / API 受权 / 数据加密 / CORS 跨域 / 数据模型 / 后端地址__等,更改的配置写入 DB 后会异步刷新到机房内各个网关节点,保证网关在处理客户端请求时没有 DB 等额外 IO 操做,进一步提高总体性能。

image | left

MGS 普遍用于包括金融地铁等公共服务领域,为了知足金融级安全监管要求,保障用户数据的安全性,客户端网络 SDK 为每一个请求数据增长签名,而后经过 RSA / ECC / 国密等加密算法对数据加密传输到网关。

网关会验签核对身份并将数据解密后转发到后端业务,后端服务处理完成后网关会再加密返回客户端。 经过这些措施,让研发同窗专一处理业务的同时不用为网络数据安全担忧。

image | left

在面对海量请求时,MGS 会经过结果缓存,超时设置,API 限流等功能来帮助后端提升性能,提供过载保护,这样当大促等高峰期流量过来时,业务服务仍然可以正常运行,从而保证了业务系统的稳定性,防止高峰期时后台服务器被压垮。

同时网关支持限流时配置客户端提示用户的文案,方便产品运营定制。

image | left

借助 API 受权功能,业务能够很方便地经过 MGS 定制包括受权,Session 控制等旁路能力,受权接口自己也以网关 API 形式定义,可与其余 API 同样设置缓存限流等各类配置,从而统一业务编程模型。另外网关 SPI SDK 还支持切面拦截,方便业务服务内总体扩展。

image | left

在平常开发测试时,MGS 提供了 API Mock 与 API Test 方便 API 开发测试。

经过 API 客户端代码生成(Android/iOS/JS),自动生成多端 SDK,实现先后端分离,配合 SDK,让业务研发同窗专一业务逻辑,无需关心底层通讯细节,团队内也无需网络专家,便可直接借力支付宝多年网络优化经验,从纷繁复杂的移动网络开发中解放,最大化业务开发效率,让研发今后爱上 API 研发。

image | left

最后,MGS 还提供了完整的数据监控与问题排查方案,经过给每一个请求生成惟一的 traceID 作链路跟踪,结合不一样类型的错误码,可在出现问题时串起整个链路,迅速定位问题找到缘由。

image | left

mPaaS MGS 展望

| 支付宝亿级网关架构能力开放

MGS 除了上述能力外,后续还会不断升级,为业务带来更专业更高效的网关服务,包括开放 ABTest灰度、HTTP2 协议、移动调度、多机房多活等功能,用支付宝多年技术积累助力企业服务技术升级。

结语

经过本节内容,相信你们对 mPaaS 移动 API 网关服务 MGS 有了初步认识。 关于网关功能详细介绍,能够参考 mPaaS 移动网关官方文档: t.cn/EUqYgZC

后续咱们将针对 mPaaS 其余服务组件的设计与优化,展开更多探讨。

往期阅读

《支付宝 App 构建优化解析:经过安装包重排布优化 Android 端启动性能》

《支付宝 App 构建优化解析:Android 包大小极致压缩》

《支付宝小程序框架浅析及如何在 mPaaS 内深度集成》

《开篇 | 蚂蚁金服 mPaaS 服务端核心组件体系概述》

关注咱们公众号,得到第一手 mPaaS 技术实践干货

QRCode
相关文章
相关标签/搜索