一种低延迟的流量解析处理方法

文档序号:10690844阅读:924来源:国知局
一种低延迟的流量解析处理方法
【专利摘要】一种低延迟的流量解析处理方法,包括:接收各采集机的上报数据,放入第一任务队列;处理线程以多线程、多级队列处理端口流量数据;按设备IP多线程并发执行;使用缓存技术对第二执行队列中的设备IP数据进行预解析,即根据采集回来的基础信息补全端口数据;将第二执行队列中的设备IP数据与前一次的设备IP数据进行对比,计算出该时刻设备IP数据的流速;将流量信息存入数据库。本发明提供一种大数据量下的多线程、高吞吐量、高效率的端口流量差分算法。本发明能够对多个采集机、大批量上报的高密度的数据快速解析处理,处理完数据后入库。本发明可以应用于类似系统信息数据的收集、低延迟的集中处理。
【专利说明】
一种低延迟的流量解析处理方法
技术领域
[0001]本发明涉及一种流量解析处理方法。特别是涉及一种用于大并发,高吞吐量及低延迟情况下的低延迟的流量解析处理方法。
【背景技术】
[0002]网管系统保证及时反应端口流量数据信息。流量数据原始数据来源于全国各地的数据采集机对设备(路由器、交换机、bas等通信设备)的snmp采集,通过网络上传至本系统,进行加工处理并展现到前台。
[0003]数据流程包括有:
[0004]1、各地市采集机采集到端口的流量信息、并上传到数据处理中心;
[0005]2、数据处理中心根据采集回来的端口基本信息查找对应端口,补全端口数据;
[0006]3、根据当前采集到的数据与上次(一次或多次)采集到的数据进行对比、差分计算出当前时间段的流量;
[0007]4、入端口流量库。
[0008]由于端口数量非常多,采集回来的数据量非常大(每个端口一分钟采集一次),且要求尽可能快速的处理数据,必须设计一套及时、准确处理流量的方法,才能满足大规模运营商集中管理各分公司的流量监控体系的需求。目前需要解决的问题如下:
[0009]1、数据量非常的大,需要多线程执行;
[0010]2、由于数据量大、可能会有延迟、堆积,对于相同的端口必须要线性执行(系统根据不同时间点的流量进行差分,如果后面的数据先执行,影响差分后数据的准确性);
[0011]3、前台端口信息可能发生变化(更换设备、扩容、缩容、更换板卡等操作)。

【发明内容】

[0012]本发明所要解决的技术问题是,提供一种用于大数据量下的多线程、高吞吐量、高效率的低延迟的流量解析处理方法。
[0013]本发明所采用的技术方案是:一种低延迟的流量解析处理方法,包括如下步骤:
[0014]I)接收各采集机的上报数据,放入第一任务队列;
[0015]2)处理线程以多线程、多级队列处理端口流量数据;
[0016]3)按设备IP多线程并发执行;
[0017]4)使用缓存技术对第二执行队列中的端口流量数据进行预解析,即根据采集回来的基础信息补全端口数据;
[0018]5)将补全端口数据的端口流量数据与前一次的端口流量数据进行对比,计算出端口的流速;
[0019]6)将流量信息存入数据库。
[0020]步骤I)包括:
[0021](I)以文件的形式多线程接收各采集机上报的多个IP下多个端口在同一时刻的端口流量数据;
[0022](2)将接收到的各采集机上报的端口流量数据按照采集机IP地址归类后存入磁盘备份并记录该路径;
[0023](3)将接收到的采集机上报的端口流量数据放入第一任务队列,通知后续线程处理端口数据流量,然后返回第(I)步。
[0024]步骤2)包括:
[0025](I)若干个处理线程依次从第一任务队列上接收端口流量数据;
[0026](2)判断在第一执行队列中是否有相同的采集机的端口流量数据正在处理,如果没有进入第(3)步,否则进入第(4)步;
[0027](3)如果第一执行队列中没有相同采集机的端口流量数据,则从第一任务队列中删除端口流量数据,并将所删除的端口流量数据加入到第一执行队列中,进入第(5)步;
[0028](4)如果第一执行队列中有相同采集机的端口流量数据,则返回第(2)步等待;
[0029](5)对从第一任务队列中移入到第一执行队列中的端口流量数据进行解析,将端口流量数据以设备IP为单位分组,加入到第二任务队列,通知第二任务队列处理线程处理数据;
[0030](6)删除第一执行队列中的端口流量数据,唤醒第(2)步中等待的线程,返回第(I)步。
[0031]步骤3)包括:
[0032](I)若干个处理线程接收第二任务队列中的数据,并判断第二执行队列中是否有相同设备IP的端口流量数据任务正在执行;
[0033](2)如果没有则从第二任务队列中删除任务,并将所删除的任务加入到第二执行队列中,执行后续步骤,后续步骤执行完成后移除第二执行队列中处理完成的端口流量数据并返回第(I)步,否则继续判断。
[0034]步骤4)包括:
[0035](I)读取第二执行队列中的设备IP和端口索引;
[0036](2)先根据设备IP和端口索引从端口缓存里面读取具体端口,端口缓存内存入有端口 IP、端口索引和数据库中对应的具体端口或者数据库中没有具体端口的空数据,具体端口包括端口主键和端口计数器数据;如果端口缓存里存在具体端口则使用,缓存里不存在具体端口则进入第(3)步;
[0037](3)当缓存里没有存在具体端口,要根据设备IP和端口索引从数据库里面加载端口主键和端口计数器数据组成具体端口,放入端口缓存中,如果数据库里没有端口主键和端口计数器数据,则使用空数据组成具体端口,放入端口缓存中;
[0038](4)通过第(2)步和第(3)步中得到具体端口且有端口主键和端口计数器数据,进入下一步,否则丢弃该端口的流量信息;
[0039](5)定期清理缓存,将达到设定时间的数据清理掉。
[0040]步骤5)包括:
[0041](I)读取当前第二执行队列的设备IP数据中端口的流量;
[0042](2)将读取的流量减去上一次设备IP数据中端口的流量,除以对应的时间差,计算出端口的流速;
[0043](3)如果平均流速为负数,则在本次流量上再加上具体端口中的端口计数器的数值,再执行第(2)步的计算后,进入步骤6),如果为正进入步骤6)。
[0044]步骤6)包括:
[0045](I)将步骤5)中计算出来平均流速和步骤4)中所取的具体端口中的端口主键转换成入库SQL;
[0046](2)与数据库建立连接;
[0047](3)执行入库 SQL。
[0048]本发明的一种低延迟的流量解析处理方法,提供一种大数据量下的多线程、高吞吐量、高效率的端口流量差分算法。本发明能够对多个采集机、大批量上报的高密度的数据快速解析处理,处理完数据后入库。本发明可以应用于类似系统信息数据的收集、低延迟的集中处理。
【附图说明】
[0049]图1是本发明接收各采集机上报数据并放入任务队列的流程图;
[0050]图2是本发明读取第一任务队列(采集机分组)及处理流程图;
[0051]图3是本发明读取第二任务队列(设备IP分组)及处理流程图;
[0052 ]图4是本发明缓存端口数据处理流程图。
【具体实施方式】
[0053]下面结合实施例和附图对本发明的一种低延迟的流量解析处理方法做出详细说明。
[0054]本发明的一种低延迟的流量解析处理方法,包括如下步骤:
[0055]I)接收各采集机的上报数据,放入第一任务队列;如图1所示,包括:
[0056](I)以文件的形式多线程接收各采集机上报的多个IP下多个端口在同一时刻的端口流量数据;
[0057](2)将接收到的各采集机上报的端口流量数据按照采集机IP地址归类后存入磁盘备份并记录该路径;
[0058](3)将接收到的采集机上报的端口流量数据放入第一任务队列,通知后续线程处理端口数据流量,然后返回第(I)步。
[0059]2)处理线程以多线程、多级队列处理端口流量数据;如图2所示,包括:
[0060](I)若干个处理线程依次从第一任务队列上接收端口流量数据;
[0061](2)判断在第一执行队列中是否有相同的采集机的端口流量数据正在处理,如果没有进入第(3)步,否则进入第(4)步;
[0062](3)如果第一执行队列中没有相同采集机的端口流量数据,则从第一任务队列中删除端口流量数据,并将所删除的端口流量数据加入到第一执行队列中,进入第(5)步;
[0063](4)如果第一执行队列中有相同采集机的端口流量数据,则返回第(2)步等待;
[0064](5)对从第一任务队列中移入到第一执行队列中的端口流量数据进行解析,将端口流量数据以设备IP为单位分组,加入到第二任务队列,通知第二任务队列处理线程处理数据;
[0065](6)删除第一执行队列中的端口流量数据,唤醒第(2)步中等待的线程,返回第(I)步。
[0066]在第2)步骤中多线程并发执行,可能引起数据的不准确。本发明对采集机进行先后约束,即保证了数据的正确性。
[0067]但是,由于各采集机上报的数据并不均匀,数据量相差很大,各处理线程间存在部分线程一直在运行、部分线程一直在等待的问题,不能充分发挥处理器的性能。
[0068]本发明在根据采集机分组的基础上,将读取到的数据再次根据端口所在设备IP分组,放入队列,再次以多线程执行,保证了数据的正确性。详细步骤如下:
[0069]3)按设备IP多线程并发执行,如图3所示,包括:
[0070](I)若干个处理线程接收第二任务队列中的数据,并判断第二执行队列中是否有相同设备IP的端口流量数据任务正在执行;
[0071](2)如果没有则从第二任务队列中删除任务,并将所删除的任务加入到第二执行队列中,执行后续步骤,后续步骤执行完成后移除第二执行队列中处理完成的端口流量数据并返回第(I)步,否则继续判断;
[0072]4)使用缓存技术对第二执行队列中的端口流量数据进行预解析,即根据采集回来的基础信息补全端口数据;如图4所示,包括:
[0073](I)读取第二执行队列中的设备IP和端口索引;
[0074](2)先根据设备IP和端口索引从端口缓存里面读取具体端口,端口缓存内存入有端口 IP、端口索引和数据库中对应的具体端口或者数据库中没有具体端口的空数据,具体端口包括端口主键和端口计数器数据;如果端口缓存里存在具体端口则使用,缓存里不存在具体端口则进入第(3)步;
[0075](3)当缓存里没有存在具体端口,要根据设备IP和端口索引从数据库里面加载端口主键和端口计数器数据组成具体端口,放入端口缓存中,如果数据库里没有端口主键和端口计数器数据,则使用空数据组成具体端口,放入端口缓存中;
[0076](4)通过第(2)步和第(3)步中得到具体端口且有端口主键和端口计数器数据,进入下一步,否则丢弃该端口的流量信息;
[0077](5)定期清理缓存,将达到设定时间的数据清理掉。
[0078]采集机上报的数据为基础数据,缺少相关信息,无法直接使用。需要从数据库里面查询数据。由于数据库交互需要通过网络,开销大且耗时,所有必须使用缓存匹配端口数据,从而提高解析速度。
[0079]定期更新缓存,可以解决缓存数据发生变化的情况,如运营商更换设备、扩容、缩容、更换板卡等,如果发现有变化,则重新加载该部分缓存以保证数据的准确性。同时操作界面上的修改、删除等操作也能触发缓存的更新。
[0080]5)将补全端口数据的端口流量数据与前一次的端口流量数据进行对比,计算出端口的流速;包括:
[0081](I)读取当前第二执行队列的设备IP数据中端口的流量;
[0082](2)将读取的流量减去上一次设备IP数据中端口的流量,除以对应的时间差,计算出端口的流速;
[0083](3)如果平均流速为负数,则在本次流量上再加上具体端口中的端口计数器的数值,再执行第(2)步的计算后,进入步骤6),如果为正进入步骤6)。
[0084]6)将流量信息存入数据库。包括:
[0085](I)将步骤5)中计算出来平均流速和步骤4)中所取的具体端口中的端口主键转换成入库SQL;
[0086](2)与数据库建立连接;
[0087](3)执行入库 SQL。
[0088]本发明的一种低延迟的流量解析处理方法,解决了如下技术问题:
[0089]1、流量差分多线程并发执行;
[0090]2、使用多队列,解决多线程间繁忙程度不一致的问题;
[0091]3、使用缓存机制实现采集回来的临时数据与正式数据的低延迟对应;
[0092]4、对同一个端口上的数据需要顺序执行。
[0093]本发明的一种低延迟的流量解析处理方法,根据数据库服务器性能,将线程数控制在一定的范围之内,保证了高效率的插入数据。
【主权项】
1.一种低延迟的流量解析处理方法,其特征在于,包括如下步骤: 1)接收各采集机的上报数据,放入第一任务队列; 2)处理线程以多线程、多级队列处理端口流量数据; 3)按设备IP多线程并发执行; 4)使用缓存技术对第二执行队列中的端口流量数据进行预解析,即根据采集回来的基础信息补全端口数据; 5)将补全端口数据的端口流量数据与前一次的端口流量数据进行对比,计算出端口的流速; 6)将流量信息存入数据库。2.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤I)包括: (1)以文件的形式多线程接收各采集机上报的多个IP下多个端口在同一时刻的端口流量数据; (2)将接收到的各采集机上报的端口流量数据按照采集机IP地址归类后存入磁盘备份并记录该路径; (3)将接收到的采集机上报的端口流量数据放入第一任务队列,通知后续线程处理端口数据流量,然后返回第(I)步。3.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤2)包括: (1)若干个处理线程依次从第一任务队列上接收端口流量数据; (2)判断在第一执行队列中是否有相同的采集机的端口流量数据正在处理,如果没有进入第(3)步,否则进入第(4)步; (3)如果第一执行队列中没有相同采集机的端口流量数据,则从第一任务队列中删除端口流量数据,并将所删除的端口流量数据加入到第一执行队列中,进入第(5)步; (4)如果第一执行队列中有相同采集机的端口流量数据,则返回第(2)步等待; (5)对从第一任务队列中移入到第一执行队列中的端口流量数据进行解析,将端口流量数据以设备IP为单位分组,加入到第二任务队列,通知第二任务队列处理线程处理数据; (6)删除第一执行队列中的端口流量数据,唤醒第(2)步中等待的线程,返回第(I)步。4.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤3)包括: (1)若干个处理线程接收第二任务队列中的数据,并判断第二执行队列中是否有相同设备IP的端口流量数据任务正在执行; (2)如果没有则从第二任务队列中删除任务,并将所删除的任务加入到第二执行队列中,执行后续步骤,后续步骤执行完成后移除第二执行队列中处理完成的端口流量数据并返回第(I)步,否则继续判断。5.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤4)包括: (1)读取第二执行队列中的设备IP和端口索引; (2)先根据设备IP和端口索引从端口缓存里面读取具体端口,端口缓存内存入有端口IP、端口索引和数据库中对应的具体端口或者数据库中没有具体端口的空数据,具体端口包括端口主键和端口计数器数据;如果端口缓存里存在具体端口则使用,缓存里不存在具体端口则进入第(3)步; (3)当缓存里没有存在具体端口,要根据设备IP和端口索引从数据库里面加载端口主键和端口计数器数据组成具体端口,放入端口缓存中,如果数据库里没有端口主键和端口计数器数据,则使用空数据组成具体端口,放入端口缓存中; (4)通过第(2)步和第(3)步中得到具体端口且有端口主键和端口计数器数据,进入下一步,否则丢弃该端口的流量信息; (5)定期清理缓存,将达到设定时间的数据清理掉。6.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤5)包括: (1)读取当前第二执行队列的设备IP数据中端口的流量; (2)将读取的流量减去上一次设备IP数据中端口的流量,除以对应的时间差,计算出端口的流速; (3)如果平均流速为负数,则在本次流量上再加上具体端口中的端口计数器的数值,再执行第(2)步的计算后,进入步骤6),如果为正进入步骤6)。7.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤6)包括: (1)将步骤5)中计算出来平均流速和步骤4)中所取的具体端口中的端口主键转换成入库 SQL; (2)与数据库建立连接; (3)执行入库SQL。
【文档编号】H04L12/24GK106059792SQ201610320033
【公开日】2016年10月26日
【申请日】2016年5月13日
【发明人】张乐华, 俞力杰
【申请人】北京英诺威尔科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1