科技成果

面向大规模云边集群的消息分发系统Ripple

1. 成果简介

云边协同场景下,实现海量边缘设备的高效、可靠、灵活的消息分发是不可或缺的关键环节。为应对这一需求,面向大规模云边集群的消息分发系统Ripple将消息分发过程结构为底层拓扑和一致性保障两部分,设计实现了一种适用于极端规模场景的消息分发协议。

图1 大规模云边集群的消息分发场景

(1)在底层拓扑方面,提出了基于生成树的灵活的多轮次推送拓扑以降低节点负载,提升高负载场景下的消息分发性能。系统当前支持完全N叉树、Gossip、基于子图划分等多种底层拓扑,并可按需扩展和自定义参数。基于底层拓扑,Ripple将消息分发过程中传统的1对N消息广播转换为遵循生成树的多轮次推送,避免大量消息堆积在高负载的服务器节点而影响时效性。


图2 底层拓扑构建(以基于子图划分的拓扑为例)

(2)在一致性保障方面,引入了“绕开不可达节点”的容错机制,配合ACK机制,保障消息最终送达并可保障网络分区时多分区可用。“绕开不可达节点”的原理是在生成树拓扑中检测到失效节点时,将失效节点的消息分发任务交由其上层节点完成。这一机制可保障在集群中出现节点失效或网络分区时消息分发仍然能够正确完成。生成树拓扑中的邻居节点定期交换心跳信息,以尽快检测到节点失效和网络分区。

图3 消息分发的最终一致性保障机制

(3)系统支持使用客户端节点的部分计算能力协助完成消息分发,从而进一步降低服务器集群的负载,并支持为不同的消息设置不同的推送路径和拓扑。Ripple在消息上附加客户端列表签名,并将完整列表保存在服务器端,从而降低消息传输占用的网络带宽。客户端在接收到消息后比对签名以确定消息分发目标。

图3 基于客户端列表签名的推送

Ripple已在GitHub上开源,许可证为“木兰宽松许可证”第2版(Mulan PSL v2)。

项目地址:https://github.com/ISCAS-SSG/Ripple

2. 技术创新点

该系统采用的层次化推送机制及改进的发布-订阅机制,极大地提升了消息分发吞吐率。实验结果表明,与SOFAJRaft相比,在大规模集群和高负载场景下推送吞吐率最高可提升1个数量级。

3. 技术成熟度

该成果当前处于中试阶段(工程化验证),相关成果用于支撑阿里巴巴百万量级微服务实例管理,现正转化至智能电网场景,用于十万量级边缘传感器、摄像头等设备的数据分发和汇聚。

4. 可应用领域

该成果可用于云计算领域中的容器集群管理、微服务治理,边缘计算领域中的海量边缘设备管理、数据协同等相关应用场景。

5. 联系人

唐震,tangzhen12@otcaix.iscas.ac.cn,15652917972

附件: