基于多线程worker的高可靠数据分发服务模型
来源:用户上传
作者:郑嘉成,张亚楠
摘要:针对传统数据分发服务中,由慢订阅者与慢连接问题引起的高丢包率问题,提出多线程数据分发模型,降低丢包率。采用多线程技术,基于actor模型,引入多线程worker实现订阅者并行接收数据,改进订阅者无状态消息返回发布者可能引起的慢连接问题,建立了基于多线程worker的高可靠数据分发服务模型,有效降低了稻荽输过程中的丢包率。不仅通过与ZeroMQ(zero message queue,零消息队列)进行对比试验,表明该模型在接收不同长度报文情况下,能有效降低丢包率。而且通过对模型进行压力测试,验证其降低丢包率的有效性。
关键词:数据分发服务;发布订阅;丢包率;多线程;慢订阅者
DOI:10.15938/j.jhust.2022.01.003
中图分类号: TP393 文献标志码: A 文章编号: 1007-2683(2022)01-0014-09
Highly Reliable Data Distribution Service Model Based
on Multithreaded Worker
ZHENG Jiacheng,ZHANG Yanan
(1School of Computer Science and Technology, Harbin University of Science and Technology, Harbin 150080,China;
2School of Software and Microelectronics, Harbin University of Science and Technology, Harbin 150080,China)
Abstract:A multithreaded data distribution model is proposed to reduce the packet loss rate caused by slow subscribers and slow connections in traditional data distribution services. Based on the actor model, the multithreaded worker is introduced to enable subscribers to receive data in parallel and to improve the slow connection problem caused by lack of status message from subscribers to publishers, and a highly reliable data distribution service model based on the multithreaded worker is established to reduce the packet loss rate during data transmission effectively. A contrast experiment ZeroMQ (zero message queue) shows that the model can effectively reduce the packet loss rate when receiving messages of different lengths. The effectiveness of the model in reducing packet loss is also verified through stress tests.
Keywords:data distribution service; publish and subscribe; packet loss rate; multithreading; slow subscriber
0引言
数据分发服务(data distribution service,DDS)是一种网络数据通信的核心技术,满足分布式实时应用的通信需求,促使数据实时、高效地分发[1]。目前DDS数据分发服务在仿真领域的应用十分广泛,例如战场指挥[2-4],雷达仿真与声纳仿真[5-9],在军事领域尤其突出。与此同时,民用领域也逐渐开始采用数据分发服务,例如船舶管理[10-11],飞行器协同[12]以及电力系统管理[13-14]。随着应用场景的不断扩展,许多实际工作都因数据传输丢包率高,仿真效果不佳而停滞不前,例如强化学习对于仿真精度以及传输效率要求都比较高,高丢包对于多智能体间数据交换会产生极大的负面影响,在很大程度上降低模型评估的正确性,目前许多研究都致力于降低数据分发服务的高丢包问题。
目前对于定位丢包位置[15]和丢包率建模[16]的技术已经存在,但对于丢包问题本身还难以有效解决。通过上行增强技术[17]优化降低上行丢包率的方法,在适用场景上略显不足。利用关联分析法对MR数据的深度挖掘[18],借此实现精准优化,但该方法仅能从宏观上降低丢包率,微观上的丢包问题并没有得到解决。调整发送接收队列长度以及引入心跳机制的处理方法[19-20],在面对不同节点硬件时,存在通用性较低的问题。
本文通过改进零消息队列(zero message queue,ZMQ)发布订阅模式,引入actor模型的思想,提出一种基于多线程worker的订阅者,实现多线程协同数据接收,引入轮询池任务调度与收集器概念,改进传统发布订阅模式,建立一种高可靠的数据分发服务模型,有效降低数据分发过程中的丢包率。相比于从宏观上降低丢包率,本模型从微观上分析并解决了引起丢包率高的慢订阅者问题和慢连接问题;且本模型通用性较高,面对不同节点条件都能得到较好的应用。
nlc202205121107
转载注明来源:https://www.xzbu.com/8/view-15431089.htm