一种基于设备地址域的通讯报文分发系统及分发方法技术方案

技术编号:22081291 阅读:29 留言:0更新日期:2019-09-12 16:07
本发明专利技术公开了一种基于设备地址域的通讯报文分发系统及分发方法,涉及电力系统数据采集领域。目前报文分发存在程序加载占内存大,程序集群扩展能力弱的情况。本发明专利技术包括通信网关集群、采集前置集群、数据入库模块,分布式消息队列模块;通信网关实现通信层的链路层功能,前置机的调度分发策略采用地址域取模分发策略,由通信网关实现分发策略,采集前置与通信网关定时心跳握手来确认双方节点是否运行正常;通信层的业务功能通过采集前置机、数据入库及消息队列三大独立功能模块共同实现;降低了程序对服务器内存配置要求,降低通信调度程序分发策略对系统档案的依赖性,提高前置系统的分布式扩展能力。

A Communication Message Distribution System and Distribution Method Based on Device Address Domain

【技术实现步骤摘要】
一种基于设备地址域的通讯报文分发系统及分发方法
本专利技术涉及电力系统数据采集领域,尤其涉及一种基于设备地址域的通讯报文分发系统及分发方法。
技术介绍
随着电力现场采集终端规模的不断扩大,浙江省用电采集系统采集终端数量规模达到300多万,采集用户达到2500多万,业务处理程序用于保存的终端、表计档案的内存高达50到60GB,对于单节点程序内存的管理肯定无法接受全加载档案,这就意味着业务处理程序需要集群分组,通信分发程序向业务处理程序分发报文需要采用一定策略来降低单节点内存加载并且同时具备节点高扩展性。通信报文分发方法是为了降低处理程序集群单节点加载的内存,同时让处理集群具备分布式扩展特性。通信报文分发方法有很多,例如按终端资产的单位代码来分配各个节点处理的终端数量,还有按终端设备地址域来分配等等。目前报文分发存在程序加载占内存大,程序集群扩展能力弱的情况。
技术实现思路
本专利技术要解决的技术问题和提出的技术任务是对现有技术方案进行完善与改进,提供一种基于设备地址域的通讯报文分发系统及分发方法,以达到降低地服务器内存配置要求的目的。为此,本专利技术采取以下技术方案。一种基于设备地址域的通讯报文分发系统,包括通信网关集群、采集前置集群、数据入库模块,分布式消息队列模块;通信网关,用于终端各种信道的链路维护功能,链路的负载均衡功能由通信网关之前的负载均衡器实现,分发异常或分发量超过处理能力时报文本地文件缓存,gprs/cdma及光纤终端通过负载均衡器接入通信网关实现集群;采集前置机,与网关集群相连,用于原始数据报文的分发调度,并将原始数据报文推送至分布式消息队列中;采集前置集群对报文的分发调度基于设备地址域算法实现策略分发,通过监控业务处理器集群各节点的运行状况实现分发策略的动态调整;采集前置机所有节点启动后都在zookeeper分布式服务系统上注册运行状态,每个节点可以通过zookeeper分布式服务系统获取各个节点运行信息;通信网关节点通过与采集前置机的定时心跳握手获取所有采集前置机节点运行状态,把本节点上的终端地址按地址域取模算法分发给指定采集前置机节点,分配信息保存在内存;采集前置机收到上行报文后发现是未知终端则加载档案,通信网关的对应关系,定时更新到zookeeper分布式服务器;从消息队列集群中取该终端设备地址所对应的下行请求,下发给对应网关;通信网关定时检测采集前置机节点状态,如发现2个心跳周期没有收到采集前置机节点心跳,则认为该节点故障,把该节点所属终端按地址域划分均衡分配给其他活动节点;通信网关发现故障节点恢复时,把上一次原属于该节点的终端再还给该节点,并把最新的对应信息更新内存;采集前置机需要定时清理非本节点管理终端档案信息;数据入库模块,用于对消息队列中采集前置机推送的解析数据存储到关系型数据库;采用分布式大数据框架Hadoop和传统关系型数据库Oracle结合的方式以适应海量数据的分析和存储,解析数据包括上报任务数据和异常事件;分布式消息队列模块,用于支撑上下行通信交互信息的时序化和持久化;采用分布式Kafka消息队列,在逻辑架构中体现数据总线的功能,通信层、应用层和数据持久层通过消息队列来进行数据交互,消息队列存放下行请求队列、上行应答队列、解析数据队列、上下行报文队列;通信网关实现通信层的链路层功能,前置机的调度分发策略采用地址域取模分发策略,由通信网关实现分发策略,采集前置需要与通信网关定时心跳握手来确认双方节点是否运行正常;通信层的业务功能通过采集前置机、数据入库及消息队列三大独立功能模块共同实现。解决程序内存高效处理与降低内存提高系统内存回收效率之间的矛盾,降低了程序对服务器内存配置要求,降低通信调度程序分发策略对系统档案的依赖性,提高前置系统的分布式扩展能力。作为优选技术手段:采集前置机把现场所有终端设备地址域划按一定规则划分为多个区间,设备地址按下行Topic的数量取模得到对应组地址域区间;下行Topic与地址域区间之间存在映射关系,前置业务处理器节点对地址域区间的管理,也即对下行Topic的管理;初始化地址域分配策略按业务前置处理服务节点数量取模,节点新增、节点故障及故障节点恢复时分别按照“新增节点分发策略”、“节点故障时分发策略”和“故障节点恢复时分发策略”实现动态调整,将分配信息及时更新至Zookeeper分布式服务系统,以降低程序内存加载,提高程序集群扩展能力。作为优选技术手段:A)节点新增/扩容时的分发策略为:A01)对每个业务处理器节点所分配的Topic按照Topic编码进行排序,并计算该节点当前处理的Topic总数;A02)对业务处理器节点根据Topic总数进行排序;A03)计算每个业务处理器节点能处理Topic的平均值,Topic总数除以业务处理器节点总数;A04)将节点中Topic数量大于AvgTopic的所有业务处理器节点的多余Topic取出,取出规则:A05)优先选择步骤A02)排序较大的业务处理器节点中Topic编码较大的Topic;A06)将步骤A04)中取出的Topic优先分配给新增的业务处理器节点,使新增节点的Topic数约平均值;若仍有未分配的Topic则对所有节点进行取模分配;A07)其他节点中删除被分配走的Topic信息。作为优选技术手段:B)节点故障时的分发策略为:B01)对前置业务处理器节点按照Topic数量进行排序;B02)Topic总数除以当前运行的前置业务处理器节点总数,得到当前运行的每个业务处理器节点处理Topic的平均值;B03)根据平均值计算当前运行的每个业务处理器节点可新增的Topic数量:由b计算得的均值-现有的Topic数;B04)将因节点故障引起的待分发Topic按照节点新增/扩容时的分发策略的计算值依次分发给排序小的业务处理器节点。作为优选技术手段:C)故障节点恢复时分发策略为:C01)恢复的业务处理器节点按照初始化时的分配策略加载对应的Topic;C02)从其他业务处理器节点定时删除这些被归还给恢复节点的Topic信息。本专利技术的另一个专利技术目的为提供一种基于面向对象的数据分发方法,其特征在于:1)把现场所有终端设备地址域划按一定规则划分为若干区间;2)kafka分布式消息队列下行队列设计,按组编号分对应组topic,每组按优先级再细分若干个队列;3)初始化地址域分配策略按采集前置机数量取模,后续增加或者减少节点动态按数量取模分配,并把分配信息及时更新zookeeper分布式服务系统;4)采集前置机所有节点启动后都在zookeeper分布式服务系统上注册运行状态;通信网关节点通过与采集前置机的定时心跳握手获取所有采集前置机节点运行状态,把本节点上的终端地址按地址域取模算法分发给指定采集前置机节点,分配信息保存在内存;5)采集前置机收到上行报文后发现是未知终端则加载档案,并记录终端地址和通信网关的对应关系,并地址更新到zookeeper分布式服务器;从消息队列集群中取该终端设备地址域所属topic下优先级从高到低取下行请求,组帧后下发给对应通信网关;采集前置机发送实现多终端并行单终端串行发送策略;6)通信网关定时检测采集前置机节状态,当发现2个心跳周期没有收到采集前置机节点心跳,则认为该节点故障,把该节点所属终端本文档来自技高网...

【技术保护点】
1.一种基于设备地址域的通讯报文分发系统,其特征在于:包括通信网关集群、采集前置集群、数据入库模块,分布式消息队列模块;通信网关,用于终端各种信道的链路维护功能,链路的负载均衡功能由通信网关之前的负载均衡器实现,分发异常或分发量超过处理能力时报文本地文件缓存,gprs/cdma及光纤终端通过负载均衡器接入通信网关实现集群;采集前置机,与网关集群相连,用于原始数据报文的分发调度,并将原始数据报文推送至分布式消息队列中;采集前置集群对报文的分发调度基于设备地址域算法实现策略分发,通过监控业务处理器集群各节点的运行状况实现分发策略的动态调整;采集前置机所有节点启动后都在zookeeper分布式服务系统上注册运行状态,每个节点可以通过zookeeper分布式服务系统获取各个节点运行信息;通信网关节点通过与采集前置机的定时心跳握手获取所有采集前置机节点运行状态,把本节点上的终端地址按地址域取模算法分发给指定采集前置机节点,分配信息保存在内存;采集前置机收到上行报文后发现是未知终端则加载档案,通信网关的对应关系,定时更新到zookeeper分布式服务器;从消息队列集群中取该终端设备地址所对应的下行请求,下发给对应网关;通信网关定时检测采集前置机节点状态,如发现2个心跳周期没有收到采集前置机节点心跳,则认为该节点故障,把该节点所属终端按地址域划分均衡分配给其他活动节点;通信网关发现故障节点恢复时,把上一次原属于该节点的终端再还给该节点,并把最新的对应信息更新内存;采集前置机需要定时清理非本节点管理终端档案信息;数据入库模块,与采集前置机相连,用于对消息队列中采集前置机推送的解析数据存储到关系型数据库;采用分布式大数据框架Hadoop和传统关系型数据库Oracle结合的方式以适应海量数据的分析和存储,解析数据包括上报任务数据和异常事件;分布式消息队列模块,与采集前置机相连,用于支撑上下行通信交互信息的时序化和持久化;采用分布式Kafka消息队列,在逻辑架构中体现数据总线的功能,通信层、应用层和数据持久层通过消息队列来进行数据交互,消息队列存放下行请求队列、上行应答队列、解析数据队列、上下行报文队列。...

【技术特征摘要】
2019.01.04 CN 20191000900911.一种基于设备地址域的通讯报文分发系统,其特征在于:包括通信网关集群、采集前置集群、数据入库模块,分布式消息队列模块;通信网关,用于终端各种信道的链路维护功能,链路的负载均衡功能由通信网关之前的负载均衡器实现,分发异常或分发量超过处理能力时报文本地文件缓存,gprs/cdma及光纤终端通过负载均衡器接入通信网关实现集群;采集前置机,与网关集群相连,用于原始数据报文的分发调度,并将原始数据报文推送至分布式消息队列中;采集前置集群对报文的分发调度基于设备地址域算法实现策略分发,通过监控业务处理器集群各节点的运行状况实现分发策略的动态调整;采集前置机所有节点启动后都在zookeeper分布式服务系统上注册运行状态,每个节点可以通过zookeeper分布式服务系统获取各个节点运行信息;通信网关节点通过与采集前置机的定时心跳握手获取所有采集前置机节点运行状态,把本节点上的终端地址按地址域取模算法分发给指定采集前置机节点,分配信息保存在内存;采集前置机收到上行报文后发现是未知终端则加载档案,通信网关的对应关系,定时更新到zookeeper分布式服务器;从消息队列集群中取该终端设备地址所对应的下行请求,下发给对应网关;通信网关定时检测采集前置机节点状态,如发现2个心跳周期没有收到采集前置机节点心跳,则认为该节点故障,把该节点所属终端按地址域划分均衡分配给其他活动节点;通信网关发现故障节点恢复时,把上一次原属于该节点的终端再还给该节点,并把最新的对应信息更新内存;采集前置机需要定时清理非本节点管理终端档案信息;数据入库模块,与采集前置机相连,用于对消息队列中采集前置机推送的解析数据存储到关系型数据库;采用分布式大数据框架Hadoop和传统关系型数据库Oracle结合的方式以适应海量数据的分析和存储,解析数据包括上报任务数据和异常事件;分布式消息队列模块,与采集前置机相连,用于支撑上下行通信交互信息的时序化和持久化;采用分布式Kafka消息队列,在逻辑架构中体现数据总线的功能,通信层、应用层和数据持久层通过消息队列来进行数据交互,消息队列存放下行请求队列、上行应答队列、解析数据队列、上下行报文队列。2.根据权利要求1所述的一种基于设备地址域的通讯报文分发系统,其特征在于:采集前置机把现场所有终端设备地址域划按一定规则划分为多个区间,设备地址按下行Topic的数量取模得到对应组地址域区间;下行Topic与地址域区间之间存在映射关系,前置业务处理器节点对地址域区间的管理,也即对下行Topic的管理;初始化地址域分配策略按业务前置处理服务节点数量取模,节点新增、节点故障及故障节点恢复时分别按照“新增节点分发策略”、“节点故障时分发策略”和“故障节点恢复时分发策略”实现动态调整,将分配信息及时更新至Zookeeper分布式服务系统,以降低程序内存加载,提高程序集群扩展能力。3.根据权利要求2所述的一种基于设备地址域的通讯报文分发系统,其特征在于:A)节点新增/扩容时的分发策略为:A01)对每个业务...

【专利技术属性】
技术研发人员:李熊黄宇腾裴旭斌王伟峰方舟程清王剑杨杰康琳
申请(专利权)人:国网浙江省电力有限公司浙江华云信息科技有限公司国家电网有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1