APP下载

电力需求侧管理平台分布式通讯架构设计

2014-02-22刘建喜黄宇魁易国亮

电子测试 2014年24期
关键词:队列消息分布式

刘建喜,郑 展,黄宇魁,易国亮

(1.广东电网公司佛山供电局,广东佛山,528000;2.广东卓维网络有限公司,广东佛山,528200)

电力需求侧管理平台分布式通讯架构设计

刘建喜1,郑 展1,黄宇魁2,易国亮2

(1.广东电网公司佛山供电局,广东佛山,528000;2.广东卓维网络有限公司,广东佛山,528200)

电力需求侧管理与服务集成平台是智能电网的重要组成部分。针对需求侧复杂环境下的电信息采集与控制数据交互问题,以及基于分布式计算通信需求问题,提出了基于ZeroMQ(Zero Message Queue,零消息队列)消息中间件的分布式通信架构,并设计了能够传输需求侧数据采集与需求响应及其它复杂消息的通用消息格式。ZeroMQ的优秀性能使得该通信架构可有效支撑分布式计算平台在异构系统间快速交换数据,缩短了智能电网高级应用分析的数据交互与计算时间,增加了系统的容错性。利用佛山市需求侧服务集成平台的实际工程环境进行了部署和测试,测试结果证明了该通信架构的可行性。

需求侧响应;分布式通信架构;ZeroMQ

0 引言

随着电力需求侧数据采集与需求响应的消息复杂化和多样化,必然会对通信架构提出更高的要求。通信架构的设计必须满足电信息交互的需求,同时还需要满足稳定性、高效性以使得它能保障电力需求侧的正常管理。

随着大量嵌入式设备进入到电力需求侧管理系统,通信通道将架设在不同的操作系统平台上,因此,通信架构的设计还需要满足平台无关性,以使得它能够在不同的环境下运行和交互。

本文将选用ZeroMQ进行数据通信,并基于ZeroMQ进行电力需求侧分布式通信系统的架构、实际测试和分析该通信架构的性能和容错性。

1 消息中间件ZeroMQ的介绍

图1 ZeroMQ与同类产品的性能比较

ZeroMQ是一个开源、轻量、大吞吐、低延迟的消息队列中间件,基于这些特点,它主要应用在高吞吐、低延迟的通信场景中,同时它也是目前效率最高的消息系统,由于其性能的优异,因此越来越广泛地应用在分布式系统的通信架构中。ZeroMQ对网络连接、数据打包和路由选择等底层网络通信进行了抽象,同时还封装了操作系统的消息缓冲、异步和多线程处理等机制,它的异步I/O模型能够为多核消息系统提供更多的扩展性。ZeroMQ不仅支持点对点的网络拓扑结构,还支持不同通信模式的组合,非常便于分布式系统的全局拓扑,而且它支持30多种语言的API,在通信架构中,将不存在语言特性而只存在消息特性。

ZeroMQ与同类产品相比还存在着不支持消息持久化和崩溃恢复的缺点,但是它主要的优点在于点对点的消息传输上,它的性能远远高于其他同类消息队列软件。ZeroMQ与其同类产品的性能对比结果如图1所示。

图片中MSMQ是微软出品的消息队列中间件,主要应用于微软平台的软件中;ActiveMQ是Apache基金会旗下的消息队列产品,由于它是基于Java编写的,因此有着跨平台的特性;RabbitMQ是使用Erlang编写的消息队列,它支持开放高级消息队列协议 (AMQP,Advanced Message Queuing Protocol),稳定性非常好。Send和Receive指的是每秒发送和接收的消息数(测试环境:Windows Vista),可以看到ZeroMQ和其他消息队列软件的性能完全不在一个级别上(每秒发送消息数:242659条,每秒接收消息数:88699条,每条数据为一个byte)。

2 基于ZeroMQ消息中间件的分布式通信架构

2.1 架构设计

系统由一个任务分发中心(DC, Distrubution Center)、x个服务单元(SC, Service Cell)、y个数据传输终端(DT,Data Terminal)和z个信息采集终端(IT, Information Terminal)构成。信息采集终端完成电参量等信息的采集工作后,将数据传给数据传输终端,由数据传输终端把组织好的数据发送给任务分发中心,接着,任务分发中心会跟服务单元通信,把相应的任务发送给相应的服务单元,由服务单元解析数据,完成整个数据通信过程。系统的网络拓扑结构如图2所示。

图2 系统网络拓扑结构

信息采集终端(IT):是智能电网中信息的来源,负责采集原始的电能信息。

数据传输单元(DT):既是物理网络拓扑结构中的信息中转节点,也是智能电网中逻辑结构的分组节点;前者负责将若干信息采集终端收集到的信息通过ZeroMQ上传给需求侧管理平台,或接收需求侧管理平台下发的命令,后者则通过分组实现智能电网对企业、区域和其他逻辑单元的划分、识别与控制。

任务分发中心(DC):是需求侧管理平台统一接收各个数据传输单元上传数据的中心。它将从数据传输单元收到的各类信息传递给服务单元,或把服务单元下发的命令传递给指定的数据传输单元,是智能电网中信息的集散地。

服务单元(SC):智能电网在这里处理各类电能数据。每个服务单元都只提供一种数据解析服务,这样做既能分散服务器压力,又能减少系统处理逻辑。

ZeroMQ主要的通信模式有4种:请求回应模式、发布订阅模式、管道模式和信号模式。根据智能电网对数据传输要求的及时性和可靠性,经过对比测试,本系统选择了最合适的请求回应模式,并且使用了高级请求回应模式:DEALER和ROUTER。该模式主要应用于数据传输终端和任务分发中心之间的数据通信。

2.2 消息封装格式

本系统的通信协议基于ZeroMQ通信协议实现,消息的封装采用如下格式:

数据传输终端标识是智能电网中数据传输终端的唯一标识,这里采用其MAC地址,一方面用于需求侧管理平台识别该数据传输终端,另一方面用于任务分发中心对数据传输终端的向下定向。

数据类型是智能电网中各种信息的标识,主要分为单向数据流和有反馈的双向数据流。单向数据流例如周期数据(智能电网需要定时收集的数据)流、通信异常数据(数据传输终端记录的跟数据采集终端发生通信异常的数据)流等,有反馈的双向数据流比如数据传输终端和任务分发中心之间的心跳,需求侧管理平台主动发出的命令等。

数据方面,对不同的数据类型,本系统规定了不同的数据组织结构,并在传输前进行了序列化和压缩,最后加密传输。

校验码方面,系统采用CRC32校验码,保证了数据的完整性和可靠性。

2.3 交互方式

对某一个数据传输终端和任务分发中心之间从建立到传递信息的过程可以用图3描述。

DT和DC建立连接的过程为:DT发送HELLO消息通知DC,DC在收到消息后回复WELCOME消息通知DT连接已经建立;之后DT异步发送各种数据类型,例如DT向DC发送周期数据时,DT将信息组织为:

DT向DC发送的通信异常数据跟周期数据基本一样,只有Frame2的数据标识变为0x02。

DT向DC发送心跳数据时,DT将信息组织为:

DC在接收到DT的心跳数据包时,回复一个相应的心跳数据包,通知DT上个心跳数据包正常接收。

3 分布式通信架构的性能及容错性

在16-core Intel CPU,32G内存,1000Mb/s网卡,linux/ubuntu14.04(内核版本:3.13.0-24)的服务器上部署任务分发中心(DC),使用ZeroMQ版本为4.1.0,在并发多个数据传输终端(DT)的情况下,每个数据传输终端每隔8秒发送一次心跳数据,每隔15秒上传一次周期数据,周期数据大小为1976byte,将测得的结果记录如图4所示。

图4:CPU使用率及内存占用率

以上实际测试显示,随着数据传输终端数量的增加,系统CPU的使用率和内存占用率稳步增加,在数据传输终端数量达到峰值时达到最大,并在之后随着数据传输终端数量的减少而稳步减小,可见ZeroMQ在分布式系统中具有优异的数据传输性能。

另外,ZeroMQ对程序错误的原则是内部错误零容忍,外部错误全包容。对于程序内部的错误,只要有错立即让程序中断,只有这样才能保证上线的产品有足够的稳定性。另一方面,对程序外部的错误需要完全包容,比如输入格式错误,输入时间错误等,都需要有相应的处理机制,这样的结果是给系统整体带来更好的适应性。本系统也是按照这样的原则来处理错误的。

4 结语

ZeroMQ的明确目标是“成为标准网络协议栈的一部发,之后进入Linux内核”,无论是在性能上还是稳定性上,它都是一个不错的选择。随着电力需求侧管理的发展,未来还将对电力需求侧的通信架构提出更多的要求,基于ZeroMQ的灵活的通信架构的设计,将足以应对这种变化。

[1] Sharath Maddineni等.Distributed Application Runtime Environment(DARE):A Standards-based Middleware Framework for Science-Gateways[J]. Journal of Grid Computing,2012,Volume 10, Issue 4, pp 647-664.

[2] Kunlun Gao等.Study on data acquisition solution of network security monitoring system. Information Theory and Information Security(ICITIS),2010 IEEE International Conference on,P674 - 677

[3] 卢本捷.分布式消息队列的理论、实现与应用[D].华中科技大学,2004.

[4] 史小平.消息队列中间件技术研究与功能分析[J].内蒙古科技与经济,2008(2):71-75.

[5] iMatix Corporation.Zguide[EB/OL].2014.http:// zguide.zeromq.org/

[6] 刘壮志,许柏婷,牛东晓.智能电网需求响应与均衡分析发展趋势[J].电网技术,2013,37(006):1555-1561.

Power demand side management platform of distributed communication architecture design

Liu Jianxi1,Zheng Zhan1,Huang Yukui2,Yi GuoLiang2
(1.Foshan Power Supply Bureau 528000;2.Guangdong Topway Network CO.,LTD.528200)

Demand Side Management and Service Integration Platform is an important part of the smart grid.For data acquisition and control electrical information interact in complex environments demand side issues,a distributed communication architecture based on ZeroMQ messaging middleware is proposed to meet the communication needs of distributed computing problem,and can transmit collected data and demand response common message format and other complex messages.ZeroMQ's excellent performance can effectively support the distribute computation and communication platform to rapid exchange of data between heterogeneous systems,reduce the computation data exchange overhead,and increase the fault tolerance of the system.The Application and test results in demand-side Foshan proved the feasibility of the communication architecture.

Demand-side response;Distributed Communications Architecture;ZeroMQ

图3 信息封装格式

刘建喜(1966-),男,高级工程师,研究方向为需求侧管理及需求响应、节能技术及政策;

郑展(1965-),男,高级工程师,研究方向为需求侧管理、节能技术及政策;

黄宇魁 (1976-)男,广东卓维网络有限公司.硕士.研究方向需求侧管理及需求响应;

易国亮 (1976-)男,广东卓维网络有限公司.中级工程师研究方向智能电网及需求响应技术。

猜你喜欢

队列消息分布式
队列里的小秘密
基于多队列切换的SDN拥塞控制*
一张图看5G消息
在队列里
分布式光伏热钱汹涌
丰田加速驶入自动驾驶队列
分布式光伏:爆发还是徘徊
基于DDS的分布式三维协同仿真研究
消息
消息