mPaas-MSS服务端架构介绍

本文涉及的产品
mPaaS订阅基础套餐,标准版 3个月
简介: 数据同步是 mPaaS 平台的一个核心基础服务组件。数据同步源自蚂蚁集团内面向移动应用、从服务端到客户端进行海量数据推送的全链路解决方案 — SYNC。该组件提供了一个安全的基于传输控制协议(Transmission Control Protocol,简称 TCP)和安全套接层(Secure Sockets Layer,简称 SSL)的数据通道,能够及时、准确、有序地将服务器端的业务数据主动地同步(SYNC)到客户端 App。

一 功能描述

1.简介

数据同步是 mPaaS 平台的一个核心基础服务组件。数据同步源自蚂蚁集团内面向移动应用、从服务端到客户端进行海量数据推送的全链路解决方案 — SYNC。该组件提供了一个安全的基于传输控制协议(Transmission Control Protocol,简称 TCP)和安全套接层(Secure Sockets Layer,简称 SSL)的数据通道,能够及时、准确、有序地将服务器端的业务数据主动地同步(SYNC)到客户端 App。

2.功能特性

数据同步具备以下特性:

  • 可靠同步
    针对业务要求的 QoS(Quality of Service)等级为必达的业务场景而言,数据同步保证只要用户在该数据有效期内活跃并且匹配业务推送要求的条件(如客户端版本号、操作系统类型等维度),就一定让客户端同步到业务推送的数据。
  • 增量有序
    数据同步保证同一个通道内到达客户端的消息顺序一定是与业务服务器调用数据同步服务器的顺序一致,并且所有消息以增量方式同步至客户端。
  • 高实时性
    当客户端连接的网络状况良好时,数据同步可以保证非常高的推送实时性,消息推送耗时几乎是纯网络传输的耗时(1s 之内送达)。

3.基本原理

类似于 MySQL 的 binlog 机制,数据同步服务器和客户端 SDK 之间传递的基本数据单元为 oplog,当业务需要同步一个变更数据到指定的用户或设备时,业务调用数据同步接口,数据同步服务端会将业务需要同步的数据变更包装为一个 oplog 持久化到数据库,然后当客户端在线的时候把 oplog 推送给客户端。每个 oplog 拥有一个唯一的 oplog id,oplog id 在确定的用户、确定的业务范围内保证唯一并且单调递增(按调用顺序)。数据同步服务端会按照 oplog id 从小到大的顺序把每一条 oplog 都推送至客户端。数据同步服务端和客户端都会记录客户端已经收到的最大 oplog id,称为同步点(亦可以被理解成数据版本号)。

4.价值优势

  • 合并推送
    客户端初始化成功时,服务端可一次性推送多个业务数据,减少不同业务的请求。
  • 增量推送
    只在有增量数据时才推送业务数据,可有效减少冗余数据的传输,降低网络成本。
  • 减少请求
    在没有增量数据时,不会消耗请求成本,减少业务的冗余请求。
  • 提高时效
    当服务端发生数据变化时,可在最短时间内将变化数据直接推送至客户端,无需等待客户端请求。
  • 提升体验
    数据无感知推送,在渲染客户端界面之前,数据已到位,降低了用户等待时间。

5.使用场景

数据同步可应用于客户端内需要实时推送数据的业务场景,如转账结果推送、支付结果推送、消息中心等。您可以通过以下场景对数据同步的能力有更深入了解。

  • 在即时通讯 App 中,数据同步提供增量、可靠的消息触达能力,将聊天消息按发送方的发送顺序,有序推送至指定用户。
  • 在需要动态更新配置的 App 中,数据同步可以动态地将配置信息进行全设备推送。将 App 功能开关、动态参数、动态配置等信息实时推送至指定客户端,或者批量动态地改变 App 在运行期间的业务参数、业务配置。
  • 在支付类 App 中,数据同步能够为交易数据的在线推送提供安全数据通道,保证在线 App 可实时接收推送数据。同时数据同步还能够提供数据持久化能力,使 App 在下一次上线时收到不在线期间的推送数据。

同时数据同步在一些特殊场景下可以用来替代RPC,可以达到事半功倍的效果,比如以下场景:

1. 客户端重复调用RPC请求,但实际没有(或少量)数据发生变化(比如消息通知,配置下发)

2. 服务端数据发生变化时,客户端无法及时感知,只能定时轮询RPC接口来刷新数据(比如单点登录)

3. 业务数据体很大,无法在单次RPC结果中返回,需要多次RPC请求来完成不同业务的数据获取(比如直播里的点赞)

以支付宝为例,移动同步使用场景如下:


二 产品架构

1.MSS架构

1.管控流程

参考上图灰色的实线,mAppCenter就是我们平时客户端同学经常使用的mPaaS控制台,当我们在mPaaS控制台上添加数据同步标识以后,msync收到配置的标识信息以后,会做一些落库操作,图中的缓存主要是存放当前设备是否在线的状态信息。

2.数据推送

开发人员从服务端或者mAppCenter控制台操作消息的同步推送,请求经msync以后,检测当前目标设备是否在线,根据配置的同步规则进行甄别,符合推送条件且当前目标设备在线的时候,信息将通过msync到APP的tcp长连接,直接同步到APP客户端。

3.网络

  • 对客户端服务的入口是msync做长链接网关,所以需要msync暴露在公网。
  • 因为目前架构中无LVS输出,所以4层正向代理由stream承担。

4.业务流量

  • 客户端长连接以及消息推送

客户端与 MSYNC 建立长连接,并一直保持。 MSYNC 向 客户端下发消息同步 TOKEN。 客户端上报 用户 ID 信息以绑定 消息同步 TOKEN。

  • 业务服务器调用 MSYNC 的 RESTFUL 接口进行消息同步

MSYNC 服务端接收到消息同步的请求后,将同步任务、同步消息入库。 通过长连接将消息同步给客户端。 若客户端不在线,则消息会保存在库中,待客户端在线后进行同步。

  • MSS 存储结构
  1. 关系型数据库 保存同步消息、同步任务信息。
  2. 缓存数据库 保存客户端链接信息。

2.MSS网络架构 – AntStack底座

1.网络

msync 需要通过 TCP 长连接主动往客户端推送业务数据,因此需要将 MSS 的长连接服务暴露在 公网上,一般情况下为公网 IP 配合 8666 端口使用,如果 8666 合规上不允许,则可以使用 80 端口,只要确保映射到 MSS 的服务端口为 8666 即可。如果前置有 F5 等网络设备,则需要在网 络设备上配置成支持长连接,并且最短维持时间需要配置成 5 分钟以上。根据以往经验,配置最 低 30+分钟综合表现比较良好。如果安全上要求需要支持 SSL,则需要将公网端口设置为 443(目 前客户端 SDK 仅支持 443 端口下进行 TCP+SSL 长连接),并在网络设备上将 443 端口映射至 MSS 服务的 8666 端口上;同理,如果途径 DMZ 区,需要 DMZ 区有四层反向服务,进行 TCP 请求代理和转发。


3.MSS网络架构 – 阿里云底座

相关的请求同步逻辑如上方产品架构介绍,此处不再累述。

目录
相关文章
|
6月前
|
微服务
01.【微服务架构】服务注册与发现:AP和CP,你选哪个?-- 服务端崩溃检测
【5月更文挑战第3天】保证服务注册与发现的高可用需关注三个方面:服务端崩溃检测、客户端容错和注册中心选型。服务端崩溃时,注册中心通过心跳检测来识别,若心跳中断,立即通知客户端服务不可用,同时持续尝试恢复心跳。若一段时间后仍无法连接,则断定服务端彻底崩溃。这种方法兼顾及时故障通知和防止误判。
93 8
|
存储 jstorm 消息中间件
mPaas-MAS服务端架构介绍
移动分析服务(Mobile Analysis Service,简称 MAS)是 mPaaS 平台的一个核心基础服务组件,是一项方便您轻松地大 规模收集、可视化并理解应用程序使用数据的服务。MAS 通过统计和分析客户端流量、性能质量和用户行为等数据,用数 据实现产品、运营、推广的决策;通过对闪退的分析,快速定位闪退原因,提高程序稳定性。
1227 0
mPaas-MAS服务端架构介绍
|
存储 移动开发 负载均衡
mPaas-MPS服务端架构介绍
消息推送服务(Message Push Service,简称 MPS)是移动开发平台 mPaaS 提供的专业的移动消息推送方案,针对不 同的场景推出多种推送类型,满足您的个性化推送需求。为了提升推送的到达率,mPaaS 在 MPS 中集成了华为、小米等 厂商的推送功能,在提供控制台快速推送能力的同时,也提供了服务端接入方案,方便用户快速集成移动终端推送功能 ,与 App 用户保持互动,从而有效地提高用户留存率,提升用户体验。
1022 0
mPaas-MPS服务端架构介绍
|
域名解析 移动开发 监控
mPaas-MGS服务端架构介绍
移动网关服务(Mobile Gateway Service,MGS)是移动开发平台(mPaaS)提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。
2159 0
mPaas-MGS服务端架构介绍
|
存储 移动开发 缓存
mPaas-MDS服务端架构介绍
实时发布服务(Mobile Delivery Service,简称 MDS)是 mPaaS 平台的核心基础服务组件之一,提供版本升级包、热修复包、H5 离线包的管理和发布服务,同时支持 开关配置、白名单、发布规则 管理功能。
1197 0
mPaas-MDS服务端架构介绍
|
Java API 开发工具
蚂蚁金服 mPaaS 服务端核心组件体系概述:移动 API 网关 MGS
根据《开篇 | mPaaS 服务端核心组件体系概述》,我们已经初步了解 mPaaS 平台后端各组件的核心架构体系。 而在 mPaaS 服务端众多组件中,移动 API 网关 MGS 是连接移动客户端与服务端的组件产品。
5132 0
|
网络协议 Java 开发工具
mPaaS 服务端核心组件:移动同步服务 MSS 架构解析
移动同步服务 MSS 是移动开发平台 mPaaS 的核心基础服务组件之一,源自于蚂蚁金服集团内面向移动应用从服务端到客户端进行海量数据推送的全链路解决方案。
2910 0
|
算法 网络协议 Java
蚂蚁金服 mPaaS 服务端核心组件:亿级并发下的移动端到端网络接入架构解析
本文结合贾岛分享内容《亿级并发下的蚂蚁移动端到端网络接入架构》,着重探讨网络接入架构在蚂蚁金服体系内如何演进、如何应对“新春红包”等亿级并发挑战、以及相应的技术架构实践与优化思路如何在 mPaaS 中得到沉淀。
3005 0
|
监控 大数据 数据库
开篇 | 蚂蚁金服 mPaaS 服务端核心组件体系概述
经过《mPaaS 客户端架构解析》系列,我们已经对 mPaaS 的产品矩阵与具体定位有了初步认识。由本章节开始,我们将针对 mPaaS 服务端核心组件体系展开梳理和讨论,带领大家进一步认识了解 mPaaS 在服务端组件体系搭建过程中踩过的坑与相应的实践经验。
3656 0
下一篇
无影云桌面