2021.11网络信息工程
基于ZeroMQ的数据分发组件设计与应用
张卫中
(上海瀚讯信息技术股份有限公司,上海,200335)
摘要:采用ZeroMQ的多播传输方式上发布/订阅消息传递模式,并融合数据分发服务的域和主题的实体概念管控传输网络边际和消息交互匹配方式,以其SRC库源码二次开发并生成可复用组件。将组件嵌入各个子系统,使得分布式系统内形成消息通信软总线,以此避免釆用第三方软件而需要复杂地安装部署。使得分布式系统架构灵活伸缩,并以ZeroMQ 具有的高性能特点支持分布式系统高效应用。
关键词:ZeroMQ;多播;发布/订阅;数据分发服务;分布式系统
Design and Application of Data Distribution Component Based
on ZeroMQ
Zhang Weizhong
(Jushri Technologies Inc・,Shanghai,200335)
Abstract:It adopts the Pub/Sub message delivery mode based on the multicast transmission mode of ZeroMQ,integrates the entity concepts of domain and topic of DDS,controls the transmission network edge and message interaction-matching mode,and uses its SRC library source code for secondary development and compiles into reusable component.The components are embedded in each subsystem to form a soft data bus in the dis tributed system,to avoid the complex ins t ai9t ion and deployment of third-party software.It makes the distributed system architectirre flexible and scalable,and supports the efficient application of distributed system with the high performance characteristics of ZeroMQ.
Keywords;ZeroMQ:Multicast;Pub/Sub;DDS;Distr让uted System
0引言
在这个信息技术快速发展的时代,物联网、大数据也伴随这个时代而兴起,信息大融合使得构建信息系统的逻辑架构越来越复杂。分布式系统是其组件分布在连网的计算机上,组件之间通过传递消息进行通信和动作协调的系统m,分布式系统是解决复杂信息系统的一个重要技术手段。在分布式系统架构里,中间件是介于操作系统和应用软件之间的软件层[2],使用中间件可以将操作系统和异构物理网络视
作“透明”层,为上层应用软件提供规范接口,中间件必须具备高并发连接、低延迟传递、高可靠交互以及易于系统架构伸缩等特点才能为分布式系统提供支撑。
ZeroMQ[3]是一个开源的通用消息传递库,支持多种传输方式上多种消息传递模式。它是零代理的、零延迟、零成本和零管理⑻,不是单独的服务或程序,仅是一个消息库,不同于RabbitMQ、ActiveMQ、MSMQ和Kafka消息中间件作为分布式的消息代理服务需要复杂地安装部署,也不同于现有主流的数据分发服务[41(Data Distribute Service,DDS)产品RTI Connext DDS>Vortex DDS、Core DDS等己经商业化
系统设计者直接把某种货架产品作为独立的服务软件应用于分布式系统,使得系统的生命周期对某产品产生依赖,影响信息系统的网络安全和灵活伸缩。ZeroMQ能够有效解决分布式系统节点通信普遍存在的开销大、延迟高、配置复杂
申耳测说等问题,减少网络通信效率不高对整个分布式系统性能的影响[6].ZeroMQ在时延和吞吐量方面比其它消息中间件都有显著的性能表现,可以达到微秒级时延和百万级吞吐量“柯,
仅受限于实际应用网络带宽和交换设备性能。
本文提出对ZeroMQ的SRC库源码进行二次开发,在多播传递方式上釆用发布/订阅的消息传递模式,构造本地数
据重构和共享虚拟池,引入DDS的数据实体域和主题的概念,以此构建可复用数据分发组件(下文简称ZMQDDS).将组件嵌入分布式各个子系统,实现计算机进程间和不同计算机节点间的数据分发,组合子系统间形成软总线式网络结构。如此使得分布式系统不依赖于第三方软件,减少复杂地安装部署工作,易于系统架构扩展,以此构建灵活、高效的数据分发组件支持项目实际应用。
1软件设计
实现ZMQDDS支持计算机进程间和不同计算机节点间的数据交互。在数据发布/订阅层与应用层之间,对共享数据的本地重构,以类的形式对数据发布/订阅层提供的服务进行了封装,让应用层可以快速地访问数据丽。支持对数据实体按照域或主题管理,支持相关参数灵活配置。主要模块包括域管理、主题管理、数据分发、数据监视、节点发现等。
(1)域管理:管理业务节点加入域和退出域。数据实体按照域为基本区分单元进行数据处理,每个实体必须从属于某
ELECTRONIC
TEST
网络信息工程
2021.11
____I ________________I _____________________________________|_______
I 主题! 主题^ I 主题……*
ZMQDDS  域
节点B 扩展节点……
主题管理
域管理
厂 发布主题Y  ||订阅主题2 | §-----------------1
|主题管理|
取消订阅主题x  | r ……"1
1数据分发1.L-*数据监视I  1域管理1
1数据监视1
1数据分发1 |多播|节点发现|
1节点发现1
节点A
发布主题2 11订阅主题3 |
主题管理
r (1)
-
------------L*数据监视
擞据分发
I 域管理
|多播|节点发现1
其它节点发 布的主题3
图1数据分发业务模型
一个域,且只能在相同域中与其它实体进行交互。
(2) 主题管理:实现业务节点对主题发布和取消发布、
对主题订阅和取消订阅等。发布/订阅传递按照主题进行数
据匹配,一个域里的每个主题有各自唯一的标识,并以该标 识进行实体发布,可以通过不同实例发布相同主题的数据样 本。发布数据过程总是指向一个明确的主题。订阅者是通过 主题请求匹配的数据。
(3) 数据分发:实现主题数据分发,能够实时向订阅者发 送业务主题,主题内容为二进制流格式,限制单个业务主题 容量最大64kB 以利于保持低时延、高吞吐量的性能。实现从 软总线上获取主题内容。
(4) 数据监视:实现获取系统内发布/订阅的主题信息,
与数据分发模块形成支持1:1、1:N 、N:M 的通信支持监
视业务主题收发次数统计、网络流量等信息。
(5) 节点发现:实现对具有相同域名的节点连接管理,实
现节点间P2P 连接,支持节点间可插拔式框架便于系统架构
灵活伸缩。
按照图1业务模型釆用QT4. & 6进行开发设计以便于
跨系统应用,以ZeroMQ 的SRC 源码的为基础构建动态库工
程,引入TinyXML 源码库支持结构化参数灵活配置。新增自定
义类:高级消息队列管理(AMQ_DDS)作为组件对外接口的初
始化、加入或离开域、数据监听、数据分发等;消息结构(MSG_
DEFINE)包含消息类型、分发数据标识、传输消息标识、多播
消息标识等;数据队列管理
(DATA_QUEUE)方便数据缓存插
入、删除、提取等操作;域管理
(DDS_DOMAIN  )控制发布、取消
发布、订阅、取消订阅、数据缓
存等;网络节点发现(NODE.
FINDER)控制多播配置参数、
绑定服务、定时器以及其它类
等。重构ctx 类增加监听、加载 结构化参数配置文件等。重构
reaper 类以控制域和主题管
理、缓存管理、数据分发和节点发现等。软件类设计关系图如图
2所示(此图中箭头为引用关系)。
开发完成组件使得ZMQDDS 与ZeroMQ 类似的内部数据
共享机制,其内部操作I/O 都是异步的,调用AMQ_DDS 的主线 程不会被阻塞。如图3所示。
图3内部数据模型图
2软件应用
ZMQDDS 在射频信号数据釆集系统(下文简称釆集系统)
中得到应用。釆集系统主要实现对多台设备端机釆集的信
号数据实时处理和本地文件存储,对实时处理能力、吞吐量
和稳定性要求较高。釆集系统釆用分布式架构设计,釆用
VS2012+QT4. & 6开发设计各子系统引用ZMQDDS 组件以支持
多个业务主题的数据分发,系统主要包括显控操作软件、数
据融合服务、综合管理软件、通信服务、地图态势等软件,及
扩展的其它辅助软件。系统架构如图4所示:
图4系统架构示意图
将多台信号采集端机实时侦查到的射频信号数据通过
通信服务接入釆集系统后再分发至其它子系统,且子系统之
申耳测说
2021.11网络信患工程
间也有数据相互发布/订阅。数据融合服务订阅实时信号数据和GPS数据进行融合处理后再发布融合结果,显控操作软件展示单/多机融合结果数据、脉冲数据、载荷状态等,地图态势软件订阅GPS数据显示设备轨迹等,综合管理软件将设定的主题参数做本地存储,其它辅助软件是根据需求扩展的子系统以支持其它业务。在多个场景试验过程中,釆集系统够应对信号数据实时高速处理和存储,并能够长时间保持稳定运行。
3性能测试
采集系统对实时数据转发的传输能力、传输时延要求较高。通过信号源仿真设备与多台信号釆集端机模拟多路雷达信号对釆集系统进行传输能力和时延测试,该系统传输结构化单元消息大小lkB,釆集系统子系统各席位(WindowslO, i7CPU@2.6GHz,8GDDR3内存)组网配置千兆网络环境。扩展设计GPS辅助软件引用ZMQDSS组件采集系统在转发信号数据、数据融合及数据存储等工作的同时,通过GPS辅助软件向釆集系统发布两次连续发送1000条和8000条的不同位置的GPS消息(lkB/条),根据数据融合服务统计和地图态势GPS 点均匀连续显示,测试没有发生消息丢失现象。GPS辅助软件直接从釆集系统订阅最大消息包(8kB)测试时延,结果显示时延在56P s左右。如图5所示。
时延测试(message size8kB)
59
58
57
J56
舉55
鱼54
53
52
rH8S<N69mO卜VrH8SZ69mO卜寸T OQ S Z69 IZZE寸U1LD9卜卜866OTZZE寸守S99卜
测试时间
图5采集系统时延测试4结束语
针对复杂信息系统实际应用中的问题进行思考,本文
通过对分布式系统、数据分发服务技术、ZeroMQ技术特点等综合研究,设计实现可复用分布式数据分发组件,以减少中间件复杂地安装部署工作,有效改善系统开销占比,支持跨系统应用,易于系统架构灵活伸缩。通过性能测试以及多场景应用试验,采集系统能够长时间保持稳定运行,验证了ZMQDDS的可用性,不足之处就是对网络带宽要求较高。随着不断深入研究,将会对研究成果不断完善和改进。
参考文献
[1]金禧弘,马应龙等,译.分布式系统:概念与设计[M].北京:
机械工业出版社,2013.1.
[2]/what-is-dds-3[On­
line].OMG,2020.
[3]/get-started[Online].The ZeroMQ
authors,2020.
⑷/spec/DDS[Online].OMG,2020.
⑸麓山馆藏.数据分发服务(DDS)产品功能及性能调研
[EB/OL].www.360doc/content/19/0708/
19/755922_8474958115hUnl201&07-08.
⑹薛鹏飞,胡荣贵,袁胡松.基于在ZeroMQ的分布式系统
通信方法[J].计算机应用,2015.35(S2):34-37.
[ZeroMQ Performance Tests[EB/OL].
⑻Michael Santy.InfiniBand tests(version2.0.6)[EB/OL],
q.Org/results:ib-tests-v206.
[ZeroMQ Performance Tests[EB/OL].
/results:10gbe-tests-v432. [10] OMG.Data Distribution Service for Real-time Systems
Version  1.2[EB/OL]./spec/ DDS/1.2,PDF formal/2019-06-01.
[11]蒲凤平,陈建政.基于ZeroMQ的分布式系统[J].电子
测试,2012.31⑺:24-29.
(上接第42页)
消效果显著,与此同时,也没有明显增大共形天线和弹头结合体在其他角度的RCSo
4结论
本文基于弹头目标的设计需求,设计了可以共形于弹头表面的微带天线,并针对锥形弹头与天线的组合体模型进行了有源对消的仿真,仿真实验结果表明在给定方向上微带天线的主动对消效果显著,使得在入射方向上,目标侧向RCS平均下降85.8dB,大大超过实验预期。同时根据结果可知,在其他散射方向上目标的RCS没有显著增大,为弹头安装天线实行有源对消的实验项目增加了理论基础。
参考文献
[1]梁百川.有源隐身技术研究[J].舰船电子对抗,2004.⑵杨小鹏.有源隐身研究和对消效应统计分析[D],西安电
子科技大学,2002.
[3]
Wu Y,Huang J,Yi M,et al.Simulation and verification of active cancellation system[J].Optik-International Journal for Light and Electron0ptics,2017.
⑷胡少峰,QUE Xiaofeng,等.目标散射特性的对消效果分
析及实验研究[C]//2017年全国天线年会论文集(下册).中国电子学会,2017.
[5]阮颖铮.雷达截面与隐身技术[M].国防工业出版社,1998.
⑹刘雄.主动隐身技术中目标的有源对消效果研究[D],电
activemq使用场景子科技大学,2018年.
ELECTRONIC
TEST

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。