文章编号:1001-4179(2016)18-0106-04
人民长江YangtzeRiverVol.47,No.18Sep.,2016
基于消息中间件的信息系统数据传输与同步设计
刘
尧,宁
芊
(四川大学电子信息学院,四川成都610065)
摘要:传统人工作业和同步软件在水利信息传输及同步实现过程中无法保障数据的可靠性。设计了一种基于消息中间件的数据双向通讯解决方案,根据不同需求在各级水利信息中心平台部署消息中间件,并通过Ac-tiveMQ集群及负载均衡等技术,实现了水利信息系统数据高效管理与实时共享。将该设计方案应用到山洪灾害监测系统数据中心平台中,验证了数据通讯的有效性、灵活性和可靠性。关
键
词:数据通信;ActiveMQ集群;负载均衡;水利信息
文献标志码:A
DOI:10.16232/j.cnki.1001-4179.2016.18.023
中图法分类号:TP391
随着信息化技术的迅猛发展,水利数据种类和形
式多样,数据总量庞大且呈指数攀升,引发了水利信息数据中心平台建设的热潮
[1]
1水利信息通讯系统结构
已能通过建设水利信息数据中心平台,解决目前,
。但传统的水利信息系
统面临数据通信方面的问题。首先,水利信息传输主要采用人工作业和同步软件2种方式,人工作业耗时耗力,不能满足传送海量水利信息数据的现状;而同步软件的不稳定性及可扩展性较差,易造成数据丢失和传输错误,耗费人工维护成本。其次如何汇集分布于各区域的水利数据到数据中心平台,实现数据高效管理、实时共享,是水利信息发展面临的问题和挑战。
消息中间件(MessageOrientedMiddleware,MOM)是一种由消息传送机制或消息队列模式组成的中间件技术,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
MOM可以实通过提供多种集群方式和消息传递模型,
现数据双向通信。可在该通信模式下实现消息异步接
收,消息发送者不需要等待接受者的响应,减少软件多系统集成的耦合度,保证系统可靠、灵活、高效运行。为此,本文将该技术引入水利信息数据通信系统,保证数据通讯的有效性、灵活性和可靠性,并为构建基于云技术的水利大数据系统提供可行的解决途径。
收稿日期:2016-05-20
先前各种防汛抗旱水资源数据源的信息孤岛问题,实现所有信息源的中心平台整合,避免信息闭塞,提高信息利用率。在数据中心平台中,水利信息数据通信系统采用4层架构,从下到上分别为终端设备层、网络传输层、数据接口层和数据层
[2]
(见图1)。终端设备层
和网络传输层实现数据获取,数据接口层和数据解析层是基于数据的业务处理,通过该架构将数据解析、处理好后存储到数据库,以便后续应用和UI展现。该4层架构可将数据获取业务分离,层间通过接口连接,且相互独立,有很好的灵活性和扩展性。
图1水利信息数据通信系统架构
“973”基金项目:国家重点基础研究发展计划项目(2013CB328903-2)作者简介:刘通讯作者:宁
尧,女,硕士研究生,主要研究方向为水利系统控制。E-mail:liuyao_scu@163.com芊,女,副教授,博士,主要从事水利信息化方面的研究。E-mail:ningq@scu.edu.cn
第18期刘尧,等:基于消息中间件的信息系统数据传输与同步设计107
终端设备层采用高可靠性和高智能化的微功耗数
——遥测终端机(RTU)进行数据采据采集终端设备—
集、处理,各个站点的水位计、雨量计、摄像头监测到的
雨量、水位、闸位、流速、流量、水量、温度、湿度、水质和图像等参量通过RTU传感器接口采集到该设备。这些数据通过GPRS与TD-SCDMA网络由终端设备层发送到网络传输层。网络传输层通过接入的GPRS与TD-SCDMA网络将信息数据传送给消息中间件,通过其解析和存储功能将数据传输到数据接口层。数据接口层接收消息中间件解析的数据,并将数据通过数据库访问接口写入数据层。数据层用于存储、备份和处理终端设备传送的各种业务数据。
在通信系统架构中,消息中间件在不同平台之间起桥梁作用,为桥接的各层之间提供同步和异步连接,且在任何时刻都可以对消息进行传送或存储转发。消息中间件可有效管理存储在其中的数据,即使在断网的情况下数据也不会丢失,一旦网络连通,数据会被自动上传,从而保证整个通信过程不会丢失数据。
nection);②再建会话(Session)和消息目的地(Desti-nation);③最后发送消息(Message)[5]。
图2ActiveMQ集群设计框图
Session、Producer连接的为避免每次Connection、
创建耗费大量系统资源,创建连接之前采用ActiveMQ提供的PoolConnectionFactory“连接池”功能。连接池中存放了主备模块中6台服务器的连接,采用多线程重复访问的方式,分别从主备模块A和主备模块B中获取可用连接,创建连接并发送消息,从而实现轮询式的负载均衡。
其中主备模块采用Master-Slave集群中的Repli-catedLevelDBStore方式。通过Zookeeper协调选择一个服务器节点作为Master,该节点开启并接受客户端连接,其余两台服务器进入Slave模式,连接Master并同步他们的存储状态。进入Slave模式的服务器将不接受客户端连接,所有的存储操作都将被复制到连接至Master的Slaves。若Master无法正常工作,最先得到更新的Slave被允许成为新的Master,从而保证主备模块始终有一台服务器继续保持与客户端的连接,解决了单点故障的问题,实现服务器主从备份。这种AciveMQ集群方式既克服了Master-Slave和Broker-Cluster两种集群的弊端,又将二者的优势完美结合起来,实现了一套负载均衡、高可用的Ac-tiveMQ集群使用方案。
2消息中间件的设计与实现
IBMWebSphereMQ作为消息中间件市场的领军
产品,相比于其他消息中间件产品,同等环境下性能可
提升60%以上,但其价格昂贵,可扩展性差,在一般企业中得不到广泛应用。
ActiveMQ是由Apache公司开发的一款免费的开
ZeroMQ、Kafka这些同类源消息中间件,与RabbitMQ、
ActiveMQ具有如下优势:支持持久性,型的产品相比,
保障业务可靠;支持跨语言跨平台,为非微软平台的产品提供集成接入点;支持跨网段,能整合不同网段的业务系统;有强大的异步通信功能,可减少软件系统集成
[3]
耦合度;易于实现高级场景等优势。因此,水利信息消息总线采用了ActiveMQ来实现业务化的应用,保障了大数据量传输的可靠性。
2.1ActiveMQ集群
ActiveMQ提供了强大和灵活的集群功能,集群方
[4]
式主要分为Master-Slave和Broker-Cluster两种,但在使用过程中会发现两者存在一定弊端。Master-Slave虽然解决了单点故障的问题,实现了主从备份,但不支持负载均衡。Broker-Cluster可以实现负载均衡,却无法实现系统高可用。
为满足企业主从备份和负载需求,本文设计了一种可靠、稳定的集群方式,见图2。整个消息的信道由连接池、消息发送端、主备模块和消息接收端组成。
通常情况下,消息发送运行的基本流程是:①首先使用连接工厂(ConnectionFactory)创建连接(Con-
2.2ActiveMQ消息通信模式
ActiveMQ的消息通信模式主要有P2P和PUB/
SUB两种[3]。其中P2P模式又称点对点(Point-to-Point),主要针消费生产者与消费者为一对一的关系,对目标地址明确的情况,一旦有消费者签收队列消息(Queue),ActiveMQ将对该消息采取删除或其他操作,共享性较差。考虑到水利业务信息交互通常与无固定IP地址的服务器通信,采用PUB/SUB模式,即发布/订阅。发布者与订阅者二者相互独立,不需要直接接
[6]
触即可保证消息传送,具有很强的灵活性。
108
人民长江2016年
33.1
消息中间件在水利信息系统中的应用水利消息分发格式消息中间件接口定义
</persistenceAdapter><networkConnectors>
<networkConnectoruri=\"static:(tcp://127.0.0.1:61616)\"duplex=\"true\"/>
</networkConnectors>
数据上报时,市/县服务器将通过TCP协议主动将消息发布到负责消息上报的Topic,市级中心可从该Topic中取出上报数据,实现数据实时同步。如果设备长时间未响应,则中心设置设备下线的消息发布到负责指令下发的Topic,市/县服务器将从该Topic中解析消息,根据指令对设备进行相应操作,实现对设备远程控制。所属同一区域中心的各市之间通过相互订阅,实现数据共享功能。在市级中心与市/县服务器
ActiveMQ数量与数据中心平台均为一对一的关中,
ActiveMQ强大的消息处理能力可满足系统需求。系,
3.1.1
为方便系统有效管理,制定了水利消息主题(Top-ic)名的命名规则,信息总线用户都采用该规则。Topic名称包括采集端向中心端推送的datacenterTopic,采集
端向中心端推送消息后,监听处理结果的responseDat-acenterTopic,中心端向采集端推送消息的collectorTop-ic和中心端向采集端推送消息后,监听处理结果的re-sponseCollectorTopic四种。完整的Topic名称由国家、省、市、县、乡镇和Topic名称6部分组成,内容之间用“.”分隔,如cn.sc.cd.djy.*.datacenterTopic。
3.1.2消息分发格式
系统数据规范参照《实时雨水情数据库表结构与
(SL323-2011)[7],上报消息采用JSON标识符标准》
数据交换格式,每条消息分为数据类型(DataType),共享信息模型(Value)两个部分。示例:
{\"DataType\":\"pptn\"//对应雨量(WJ_PPTN_R)\"Value\":{[
deviceChannelNumber:1//通道号
tm:2015-06-0815:05:00//采集时间drp:0.5//时段降雨量intv:0.05//时段长:5mindyp://日降雨量
{}]}rc:},
3.2架构设计
ActiveMQ作为整个水利信息通信系统的重要组
成部分,以不同方式部署在各级中心平台,图3为基于消息中间件高可用、稳定可靠的水利信息数据双向通信系统架构。以在全国实施的山洪灾害防治项目非工程措施建设中的山洪监测系统为例,该系统从下到上由市/县服务器、市级中心、区域中心和省级中心构成,
[8]
各个部分之间的通信通过ActiveMQ来完成。
首先市/县各区域部署的监测设备将水位雨量等信息通过GPRS与TD-SCDMA网络传送至市/县采集库,经过整理存至市/县平台标准库。市级中心与市/县服务器之间为双向持久化订阅的消息通信模式,避免服务器重启后消息丢失。ActiveMQ配置示例如下,并采用KahaDB作为默认的持久化方式:
<persistenceAdapter>
<kahaDBdirectory=\"activemq-data\"journalMax-FileLength=\"32mb\"/>
图3水利信息系统整体结构
区域中心与市级中心的消息通信模式与之类似,而整个通信系统灵活性极强,市级中心也可越过区域中心直接与省级中心通讯。随着区域逐步扩大,需要消息中间件有更强的消息处理能力,所以在区域中心平台中采用了一对Broker-Cluster集群的方式实现负载均衡,避免了一台服务器消费速度过慢造成的消息积压和通道堵塞。分别对2个节点的ActiveMQ进行
[9]
如下配置。
第18期刘尧,等:基于消息中间件的信息系统数据传输与同步设计109
Broker-A:
<networkConnectors>
<networkConnectoruri=\"static:(tcp://0.0.0.0:61617)\"duplex=\"true\"/>
</networkConnectors><transportConnectors>
<transportConnectorname=\"openwire\"uri=\"tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600\"/>
</transportConnectors>Broker-B:
<networkConnectors>
<networkConnectoruri=\"static:(tcp://0.0.0.0:61616)\"duplex=\"true\"/>
</networkConnectors><transportConnectors>
<transportConnectorname=\"openwire\"uri=\"tcp://0.0.0.0:61617?maximumConnections=1000&wireFormat.maxFrameSize=104857600\"/>
</transportConnectors>
省级中心待处理的消息总量庞大,且消息过多,服
务器存在许多不稳定因素,宕机风险高。采用图2中给出的ActiveMQ集群设计,通过多台服务器负载均衡,可大大提高消息处理速度,主备模式有效避免了单点故障的问题。其中主备模块需要将ActiveMQ原来KahaDB的持久化方式配置为LevelDB+Zookeeper的持久化方式。配置如下:
<persistenceAdapter>
<replicatedLevelDB
directory=\"${activemq.data}/leveldb\"replicas=\"3\"
bind=\"tcp://0.0.0.0:0\"
zkAddress=\"192.168.1.145:2181,192.168.1.100:2181,192.168.1.158:2181\"
hostname=\"192.168.1.145\"sync=\"local_disk\"
zkPath=\"/activemq/leveldb-stores\"/>
</persistenceAdapter>
[10]
中心平台中投入应用,系统在功能性和稳定性方面表
现尤为突出。经实践验证,业务中使用消息中间件优化了现有业务架构系统,节省了人工作业成本和同步软件系统的费用和开销,降低了系统集成难度;能更好地处理业务流程变化,提升了水利信息通信系统的数据分析及处理能力,使系统具有良好的稳定性、灵活性和可靠性。截止目前,采集数据量接近一千万,传输速率高达8.9条/s,满足水利业务快速发展、稳定高效的需求
[11]
。接着将研究其在大数据云系统中的应用,并
[12]
进一步提高总线的稳定性和可扩展性。
除了山洪预警监测系统中面临数据共享和业务上的挑战,在节水灌溉、水资源调度等领域也同样存在,本文在水利总线开发与应用方面的经验将对其他水利利用领域具有一定借鉴作用。参考文献:
[1]龚琪慧,.中国刘伟,李坤.基于大数据的水利数据中心建设[Z]
2015(12).水务论坛在线,
[2]刘鹏.消息中间件技术在煤矿下通信系统中的应用[J].工矿自动
2013,39(1):23-26.化,
[3]戴俊,朱晓民.基于的异步消息总线的设计与实现[J].计算机系
2010,19(8):254-257.统应用,[4]
TheApacheFoundation.ApacheActiveMQ[DB/OL]http://ac-tivemqapache.org/,2015,1.
[5]李易民,凌捷.安全消息中间件的设计[J].计算机工程与设计,
2011,32(6):1934-1937.
J].[6]熊风光,韩燮,韩焱.自动测试系统消息中间件的设计与实现[
2013,30(4):65-68.计算机应用软件,
[7]何洋,宁芊,赵成萍.县级山洪预警平台专题数据库设计与应用
[J].人民长江,2014,45(2):45-48.
[8]严华,宁芊,赵成萍.基于DCS和中间件的流程企业应用集成技
J].四川大学学报:自然科学版,2008,45(6):299-305.术研究[
[9]SnyderB,BosanacD,DaviesR.ActiveMQinAction[M].Manning
PublicationsCo,2011.
.西安:西[10]汪然.基于ActiveMQ的消息中间件的设计与实现[D]
2013.安电子科技大学,
[11]钱峥,“消息中间件”胡亚旦,黄旋旋.基于技术的气象信息总线
[J].气象科技,2016,44(2):217-222.
[12]黄河,刘旭东,孙海龙.云计算环境下服务中间件动态管理框架
J].计算机工程与科学,2013,35(1):30-35.的设计与实现[
(编辑:郑毅)
(下转第113页)
4结语
水利信息总线已在山洪监测预警系统数据目前,
第18期等:三峡库区生态屏障区农村人口转移研究樊连生,
2003(7):20-24.研究,
113
好更快地发展,在库区城镇化发展过程中,需要对户
籍、教育、医疗以及社会保障等相关制度进行综合配套改革,破除相关制度障碍,营造相对公平的制度环境,
[9]
使库区生态屏障区人口转移工作的开展更加顺利。(2)建立与城乡一体化相适应的劳动力市场,保障转移人口的就业。转移人口只有在城镇顺利实现就业,收入水平与转移之前能有大幅度提高,才能对其向城镇转移有较大的吸引力。因此,与城乡一体化相适应的劳动力市场的建立至关重要,它是保障转移人口
[10]
在城镇就业的关键。
(3)加强转移人口的技能培训,使农村转移人口真正实现市民化。相对平等地在城镇就业,融入城镇文化生活等,是农村转移人口真正实现市民化的重要方面。但是,农村人口若是缺乏就业技能或就业技能较差,则很难在城镇就业,更难顺利地接受城镇生活方式和文化理念。所以,在农村人口向城镇转移的过程中,政府相关部门需加大对转移人口的技能培训,为使
[11]
农村转移人口真正实现市民化提供基础保障。参考文献:
[1]胡英.城镇化进程中—J].统计——农村向城镇转移人口数量分析[
“一小时经济圈”.经[2]唐鸿铃.重庆城市规模分布的分形研究[J]
2011(1):151-153.济研究导刊,
[3]黄玲,郎永建.三峡库区农村剩余劳动力转移问题及对策研究
[J].商场现代化,2006(5)(下旬刊):307-308.
[4]时胜利,崔洁.三峡库区农村剩余劳动力转移的制约因素及对策
J].农村经济与科技,2007(12):8-9.研究[
[5]严登才,施国庆,伊庆山.三峡库区农村人口梯度转移理论与实
.西北人口,2012(5):64-68.——以开县为例[J]践—
[6]尤朝忠,段龙龙.成渝经济区门户城市产业空间梯度转移研究
[J].世界地理研究,2014,23(2):104-122.
.人民长江,[7]齐美苗,蒋建东.三峡工程移民安置规划总结[J]
2013,44(2):16-20.
.法制与社会,2011(2):[8]侯志军.“土地换社保”的理论与实践[J]
181-182.
J].河南社会科[9]杨云善.建立农业转移人口市民化促进机制研究[
2014(2):109-113.学,
[10]杨荣华,王迪友,王鄂豫.水利水电工程建设征地移民安置工作
J].人民长江,2013,44(2):5-8.的几点思考[
J].乡镇经济,[11]黄玲.三峡库区农村剩余劳动力转移的路径探析[
2008(3):64-66.
(编辑:赵秋云)
Studyofruralpopulationtransferfromecologicalbarrier
zoneofThreeGorgesReservoirarea
FANLiansheng,YANGWeiwei,HEJiajun
(ChangjiangProjectSupervisionandConsultancyCo.Ltd.,ChangjiangWaterResourcesCommission,Wuhan430010,China)Abstract:
UrbanizationisthepotentialoffutureeconomicdevelopmentofChina,ofwhichtheruralpopulationcitizenshipis
thecore.ThepopulationtransferfromecologicalbarrierzoneofThreeGorgesReservoirarea,approvedbythestate,isoneoftheimportantworkofthepostplanningofThreeGorgesProject.Itspurposeistostablyandorderlypromoteruralpopulationtransferbytakingurbanizationasanimportantmeansandcombiningitwiththerelatedpoliciesonthepostplanningworkoftheresettle-ment.Thepromotionmechanismandrestrictingfactorsofthecurrentpopulationtransferareanalyzed,severaltransfermodesrel-yingonurbanizationareputforward,theadjustmentmethodoftherightsandinterestsofthetransferringpopulationunderurbani-zationisstudiedandsomesuggestionsareoffered.Keywords:
(上接第109页)
urbanization;ruralpopulationtransfer;ThreeGorgesReservoirarea
櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅櫅Designofdatatransmissionandsynchronizationforwater
informationsystembasedonMessage-OrientedMiddleware
LIUYao,NINGQian
(CollegeofElectronicsandInformationEngineering,SichuanUniversity,Chengdu610015,China)
Abstract:
Traditionalmethods,suchasartificialoperationandsynchronizationsoftware,cannotguaranteethereliabilityof
datatransmissionandsynchronizationofwaterinformation.AsolutionofdatabidirectionalcommunicationbasedonMessage-O-rientedMiddleware(MOM)isproposed.Accordingtovariousdemands,MOMisdeployedatplatformsofdifferentlevelsofwa-terinformationcenters,anddataefficientmanagementandreal-timesharingofwaterinformationsystemarerealizedbyAc-tiveMQclustersandloadbalancingtechnology.Theproposedschemeisappliedtothedatacenterplatformoftorrentialfloodmo-nitoringsystem,whichverifiestheeffectiveness,flexibilityandreliabilityofdatacommunication.Keywords:
datacommunication;ActiveMQ;loadbalance;waterinformation
因篇幅问题不能全部显示,请点此查看更多更全内容