CN106059792B - 一种低延迟的流量解析处理方法 - Google Patents
一种低延迟的流量解析处理方法 Download PDFInfo
- Publication number
- CN106059792B CN106059792B CN201610320033.3A CN201610320033A CN106059792B CN 106059792 B CN106059792 B CN 106059792B CN 201610320033 A CN201610320033 A CN 201610320033A CN 106059792 B CN106059792 B CN 106059792B
- Authority
- CN
- China
- Prior art keywords
- port
- data
- flow
- queue
- harvester
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/024—Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
Abstract
一种低延迟的流量解析处理方法,包括:接收各采集机的上报数据,放入第一任务队列;处理线程以多线程、多级队列处理端口流量数据;按设备IP多线程并发执行;使用缓存技术对第二执行队列中的设备IP数据进行预解析,即根据采集回来的基础信息补全端口数据;将第二执行队列中的设备IP数据与前一次的设备IP数据进行对比,计算出该时刻设备IP数据的流速;将流量信息存入数据库。本发明提供一种大数据量下的多线程、高吞吐量、高效率的端口流量差分算法。本发明能够对多个采集机、大批量上报的高密度的数据快速解析处理,处理完数据后入库。本发明可以应用于类似系统信息数据的收集、低延迟的集中处理。
Description
技术领域
本发明涉及一种流量解析处理方法。特别是涉及一种用于大并发,高吞吐量及低延迟情况下的低延迟的流量解析处理方法。
背景技术
网管系统保证及时反应端口流量数据信息。流量数据原始数据来源于全国各地的数据采集机对设备(路由器、交换机、bas等通信设备)的snmp采集,通过网络上传至本系统,进行加工处理并展现到前台。
数据流程包括有:
1、各地市采集机采集到端口的流量信息、并上传到数据处理中心;
2、数据处理中心根据采集回来的端口基本信息查找对应端口,补全端口数据;
3、根据当前采集到的数据与上次(一次或多次)采集到的数据进行对比、差分计算出当前时间段的流量;
4、入端口流量库。
由于端口数量非常多,采集回来的数据量非常大(每个端口一分钟采集一次),且要求尽可能快速的处理数据,必须设计一套及时、准确处理流量的方法,才能满足大规模运营商集中管理各分公司的流量监控体系的需求。目前需要解决的问题如下:
1、数据量非常的大,需要多线程执行;
2、由于数据量大、可能会有延迟、堆积,对于相同的端口必须要线性执行(系统根据不同时间点的流量进行差分,如果后面的数据先执行,影响差分后数据的准确性);
3、前台端口信息可能发生变化(更换设备、扩容、缩容、更换板卡等操作)。
发明内容
本发明所要解决的技术问题是,提供一种用于大数据量下的多线程、高吞吐量、高效率的低延迟的流量解析处理方法。
本发明所采用的技术方案是:一种低延迟的流量解析处理方法,包括如下步骤:
1)接收各采集机的上报数据,放入第一任务队列;
2)处理线程以多线程、多级队列处理端口流量数据;
3)按设备IP多线程并发执行;
4)使用缓存技术对第二执行队列中的端口流量数据进行预解析,即根据采集回来的基础信息补全端口数据;
5)将补全端口数据的端口流量数据与前一次的端口流量数据进行对比,计算出端口的流速;
6)将流量信息存入数据库。
步骤1)包括:
(1)以文件的形式多线程接收各采集机上报的多个IP下多个端口在同一时刻的端口流量数据;
(2)将接收到的各采集机上报的端口流量数据按照采集机IP地址归类后存入磁盘备份并记录该路径;
(3)将接收到的采集机上报的端口流量数据放入第一任务队列,通知后续线程处理端口数据流量,然后返回第(1)步。
步骤2)包括:
(1)若干个处理线程依次从第一任务队列上接收端口流量数据;
(2)判断在第一执行队列中是否有相同的采集机的端口流量数据正在处理,如果没有进入第(3)步,否则进入第(4)步;
(3)如果第一执行队列中没有相同采集机的端口流量数据,则从第一任务队列中删除端口流量数据,并将所删除的端口流量数据加入到第一执行队列中,进入第(5)步;
(4)如果第一执行队列中有相同采集机的端口流量数据,则返回第(2)步等待;
(5)对从第一任务队列中移入到第一执行队列中的端口流量数据进行解析,将端口流量数据以设备IP为单位分组,加入到第二任务队列,通知第二任务队列处理线程处理数据;
(6)删除第一执行队列中的端口流量数据,唤醒第(2)步中等待的线程,返回第(1)步。
步骤3)包括:
(1)若干个处理线程接收第二任务队列中的数据,并判断第二执行队列中是否有相同设备IP的端口流量数据任务正在执行;
(2)如果没有则从第二任务队列中删除任务,并将所删除的任务加入到第二执行队列中,执行后续步骤,后续步骤执行完成后移除第二执行队列中处理完成的端口流量数据并返回第(1)步,否则继续判断。
步骤4)包括:
(1)读取第二执行队列中的设备IP和端口索引;
(2)先根据设备IP和端口索引从端口缓存里面读取具体端口,端口缓存内存入有端口IP、端口索引和数据库中对应的具体端口或者数据库中没有具体端口的空数据,具体端口包括端口主键和端口计数器数据;如果端口缓存里存在具体端口则使用,缓存里不存在具体端口则进入第(3)步;
(3)当缓存里没有存在具体端口,要根据设备IP和端口索引从数据库里面加载端口主键和端口计数器数据组成具体端口,放入端口缓存中,如果数据库里没有端口主键和端口计数器数据,则使用空数据组成具体端口,放入端口缓存中;
(4)通过第(2)步和第(3)步中得到具体端口且有端口主键和端口计数器数据,进入下一步,否则丢弃该端口的流量信息;
(5)定期清理缓存,将达到设定时间的数据清理掉。
步骤5)包括:
(1)读取当前第二执行队列的设备IP数据中端口的流量;
(2)将读取的流量减去上一次设备IP数据中端口的流量,除以对应的时间差,计算出端口的流速;
(3)如果平均流速为负数,则在本次流量上再加上具体端口中的端口计数器的数值,再执行第(2)步的计算后,进入步骤6),如果为正进入步骤6)。
步骤6)包括:
(1)将步骤5)中计算出来平均流速和步骤4)中所取的具体端口中的端口主键转换成入库SQL;
(2)与数据库建立连接;
(3)执行入库SQL。
本发明的一种低延迟的流量解析处理方法,提供一种大数据量下的多线程、高吞吐量、高效率的端口流量差分算法。本发明能够对多个采集机、大批量上报的高密度的数据快速解析处理,处理完数据后入库。本发明可以应用于类似系统信息数据的收集、低延迟的集中处理。
附图说明
图1是本发明接收各采集机上报数据并放入任务队列的流程图;
图2是本发明读取第一任务队列(采集机分组)及处理流程图;
图3是本发明读取第二任务队列(设备IP分组)及处理流程图;
图4是本发明缓存端口数据处理流程图。
具体实施方式
下面结合实施例和附图对本发明的一种低延迟的流量解析处理方法做出详细说明。
本发明的一种低延迟的流量解析处理方法,包括如下步骤:
1)接收各采集机的上报数据,放入第一任务队列;如图1所示,包括:
(1)以文件的形式多线程接收各采集机上报的多个IP下多个端口在同一时刻的端口流量数据;
(2)将接收到的各采集机上报的端口流量数据按照采集机IP地址归类后存入磁盘备份并记录该路径;
(3)将接收到的采集机上报的端口流量数据放入第一任务队列,通知后续线程处理端口数据流量,然后返回第(1)步。
2)处理线程以多线程、多级队列处理端口流量数据;如图2所示,包括:
(1)若干个处理线程依次从第一任务队列上接收端口流量数据;
(2)判断在第一执行队列中是否有相同的采集机的端口流量数据正在处理,如果没有进入第(3)步,否则进入第(4)步;
(3)如果第一执行队列中没有相同采集机的端口流量数据,则从第一任务队列中删除端口流量数据,并将所删除的端口流量数据加入到第一执行队列中,进入第(5)步;
(4)如果第一执行队列中有相同采集机的端口流量数据,则返回第(2)步等待;
(5)对从第一任务队列中移入到第一执行队列中的端口流量数据进行解析,将端口流量数据以设备IP为单位分组,加入到第二任务队列,通知第二任务队列处理线程处理数据;
(6)删除第一执行队列中的端口流量数据,唤醒第(2)步中等待的线程,返回第(1)步。
在第2)步骤中多线程并发执行,可能引起数据的不准确。本发明对采集机进行先后约束,即保证了数据的正确性。
但是,由于各采集机上报的数据并不均匀,数据量相差很大,各处理线程间存在部分线程一直在运行、部分线程一直在等待的问题,不能充分发挥处理器的性能。
本发明在根据采集机分组的基础上,将读取到的数据再次根据端口所在设备IP分组,放入队列,再次以多线程执行,保证了数据的正确性。详细步骤如下:
3)按设备IP多线程并发执行,如图3所示,包括:
(1)若干个处理线程接收第二任务队列中的数据,并判断第二执行队列中是否有相同设备IP的端口流量数据任务正在执行;
(2)如果没有则从第二任务队列中删除任务,并将所删除的任务加入到第二执行队列中,执行后续步骤,后续步骤执行完成后移除第二执行队列中处理完成的端口流量数据并返回第(1)步,否则继续判断;
4)使用缓存技术对第二执行队列中的端口流量数据进行预解析,即根据采集回来的基础信息补全端口数据;如图4所示,包括:
(1)读取第二执行队列中的设备IP和端口索引;
(2)先根据设备IP和端口索引从端口缓存里面读取具体端口,端口缓存内存入有端口IP、端口索引和数据库中对应的具体端口或者数据库中没有具体端口的空数据,具体端口包括端口主键和端口计数器数据;如果端口缓存里存在具体端口则使用,缓存里不存在具体端口则进入第(3)步;
(3)当缓存里没有存在具体端口,要根据设备IP和端口索引从数据库里面加载端口主键和端口计数器数据组成具体端口,放入端口缓存中,如果数据库里没有端口主键和端口计数器数据,则使用空数据组成具体端口,放入端口缓存中;
(4)通过第(2)步和第(3)步中得到具体端口且有端口主键和端口计数器数据,进入下一步,否则丢弃该端口的流量信息;
(5)定期清理缓存,将达到设定时间的数据清理掉。
采集机上报的数据为基础数据,缺少相关信息,无法直接使用。需要从数据库里面查询数据。由于数据库交互需要通过网络,开销大且耗时,所有必须使用缓存匹配端口数据,从而提高解析速度。
定期更新缓存,可以解决缓存数据发生变化的情况,如运营商更换设备、扩容、缩容、更换板卡等,如果发现有变化,则重新加载该部分缓存以保证数据的准确性。同时操作界面上的修改、删除等操作也能触发缓存的更新。
5)将补全端口数据的端口流量数据与前一次的端口流量数据进行对比,计算出端口的流速;包括:
(1)读取当前第二执行队列的设备IP数据中端口的流量;
(2)将读取的流量减去上一次设备IP数据中端口的流量,除以对应的时间差,计算出端口的流速;
(3)如果平均流速为负数,则在本次流量上再加上具体端口中的端口计数器的数值,再执行第(2)步的计算后,进入步骤6),如果为正进入步骤6)。
6)将流量信息存入数据库。包括:
(1)将步骤5)中计算出来平均流速和步骤4)中所取的具体端口中的端口主键转换成入库SQL;
(2)与数据库建立连接;
(3)执行入库SQL。
本发明的一种低延迟的流量解析处理方法,解决了如下技术问题:
1、流量差分多线程并发执行;
2、使用多队列,解决多线程间繁忙程度不一致的问题;
3、使用缓存机制实现采集回来的临时数据与正式数据的低延迟对应;
4、对同一个端口上的数据需要顺序执行。
本发明的一种低延迟的流量解析处理方法,根据数据库服务器性能,将线程数控制在一定的范围之内,保证了高效率的插入数据。
Claims (6)
1.一种低延迟的流量解析处理方法,其特征在于,包括如下步骤:
1)接收各采集机的上报数据,放入第一任务队列;
2)处理线程以多线程、多级队列处理端口流量数据;
3)按设备IP多线程并发执行;
4)使用缓存技术对第二执行队列中的端口流量数据进行预解析,即根据采集回来的基础信息补全端口数据,具体包括:
(41)读取第二执行队列中的设备IP和端口索引;
(42)先根据设备IP和端口索引从端口缓存里面读取具体端口,端口缓存内存入有端口IP、端口索引和数据库中对应的具体端口或者数据库中没有具体端口的空数据,具体端口包括端口主键和端口计数器数据;如果端口缓存里存在具体端口则使用,缓存里不存在具体端口则进入第(43)步;
(43)当缓存里没有存在具体端口,要根据设备IP和端口索引从数据库里面加载端口主键和端口计数器数据组成具体端口,放入端口缓存中,如果数据库里没有端口主键和端口计数器数据,则使用空数据组成具体端口,放入端口缓存中;
(44)通过第(42)步和第(43)步中得到具体端口且有端口主键和端口计数器数据,进入下一步,否则丢弃该端口的流量信息;
(45)定期清理缓存,将达到设定时间的数据清理掉;
5)将补全端口数据的端口流量数据与前一次的端口流量数据进行对比,计算出端口的流速;
6)将端口流量信息存入数据库。
2.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤1)包括:
(11)以文件的形式多线程接收各采集机上报的多个IP下多个端口在同一时刻的端口流量数据;
(12)将接收到的各采集机上报的端口流量数据按照采集机IP地址归类后存入磁盘备份并记录该路径;
(13)将接收到的采集机上报的端口流量数据放入第一任务队列,通知后续线程处理端口数据流量,然后返回第(11)步。
3.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤2)包括:
(21)若干个处理线程依次从第一任务队列上接收端口流量数据;
(22)判断在第一执行队列中是否有相同的采集机的端口流量数据正在处理,如果没有进入第(23)步,否则进入第(24)步;
(23)如果第一执行队列中没有相同采集机的端口流量数据,则从第一任务队列中删除端口流量数据,并将所删除的端口流量数据加入到第一执行队列中,进入第(25)步;
(24)如果第一执行队列中有相同采集机的端口流量数据,则返回第(2)步等待;
(5)对从第一任务队列中移入到第一执行队列中的端口流量数据进行解析,将端口流量数据以设备IP为单位分组,加入到第二任务队列,通知第二任务队列处理线程处理数据;
(26)删除第一执行队列中的端口流量数据,唤醒第(22)步中等待的线程,返回第(21)步。
4.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤3)包括:
(31)若干个处理线程接收第二任务队列中的数据,并判断第二执行队列中是否有相同设备IP的端口流量数据任务正在执行;
(32)如果没有则从第二任务队列中删除任务,并将所删除的任务加入到第二执行队列中,执行后续步骤,后续步骤执行完成后移除第二执行队列中处理完成的端口流量数据并返回第(31)步,否则继续判断。
5.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤5)包括:
(51)读取当前第二执行队列的设备IP数据中端口的流量;
(52)将读取的流量减去上一次设备IP数据中端口的流量,除以对应的时间差,计算出端口的流速;
(53)如果平均流速为负数,则在本次流量上再加上具体端口中的端口计数器的数值,再执行第(52)步的计算后,进入步骤6),如果为正进入步骤6)。
6.根据权利要求1所述的一种低延迟的流量解析处理方法,其特征在于,步骤6)包括:
(61)将步骤5)中计算出来平均流速和步骤4)中所取的具体端口中的端口主键转换成入库SQL;
(62)与数据库建立连接;
(63)执行入库SQL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610320033.3A CN106059792B (zh) | 2016-05-13 | 2016-05-13 | 一种低延迟的流量解析处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610320033.3A CN106059792B (zh) | 2016-05-13 | 2016-05-13 | 一种低延迟的流量解析处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106059792A CN106059792A (zh) | 2016-10-26 |
CN106059792B true CN106059792B (zh) | 2019-03-29 |
Family
ID=57177519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610320033.3A Active CN106059792B (zh) | 2016-05-13 | 2016-05-13 | 一种低延迟的流量解析处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106059792B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284194A (zh) * | 2018-08-16 | 2019-01-29 | 平安科技(深圳)有限公司 | 数据采集方法、征信主体设备、计算机设备及存储介质 |
CN114124643B (zh) * | 2021-11-10 | 2023-08-01 | 中盈优创资讯科技有限公司 | 一种基于PaaS的网络设备流量采集方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794661A (zh) * | 2005-12-26 | 2006-06-28 | 北京交通大学 | 一种基于IPv6的网络性能分析报告系统及实现方法 |
CN101316193A (zh) * | 2007-05-28 | 2008-12-03 | 北京师范大学珠海分校 | 测量探针的多任务调度方法 |
CN101719847A (zh) * | 2009-10-15 | 2010-06-02 | 上海寰雷信息技术有限公司 | 一种dns流量的高性能监控方法 |
CN102594621A (zh) * | 2012-02-21 | 2012-07-18 | 德科仕通信(上海)有限公司 | 一种高性能ip媒体流监测方法及系统 |
CN103414594A (zh) * | 2013-08-23 | 2013-11-27 | 烽火通信科技股份有限公司 | 一种用于计费和监控的ip流信息统计方法 |
CN103944771A (zh) * | 2013-01-19 | 2014-07-23 | 鸿富锦精密工业(深圳)有限公司 | 网络数据流量测试方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US20050147095A1 (en) * | 2003-12-30 | 2005-07-07 | Intel Corporation | IP multicast packet burst absorption and multithreaded replication architecture |
-
2016
- 2016-05-13 CN CN201610320033.3A patent/CN106059792B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794661A (zh) * | 2005-12-26 | 2006-06-28 | 北京交通大学 | 一种基于IPv6的网络性能分析报告系统及实现方法 |
CN101316193A (zh) * | 2007-05-28 | 2008-12-03 | 北京师范大学珠海分校 | 测量探针的多任务调度方法 |
CN101719847A (zh) * | 2009-10-15 | 2010-06-02 | 上海寰雷信息技术有限公司 | 一种dns流量的高性能监控方法 |
CN102594621A (zh) * | 2012-02-21 | 2012-07-18 | 德科仕通信(上海)有限公司 | 一种高性能ip媒体流监测方法及系统 |
CN103944771A (zh) * | 2013-01-19 | 2014-07-23 | 鸿富锦精密工业(深圳)有限公司 | 网络数据流量测试方法及系统 |
CN103414594A (zh) * | 2013-08-23 | 2013-11-27 | 烽火通信科技股份有限公司 | 一种用于计费和监控的ip流信息统计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106059792A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566206B (zh) | 一种流量测量方法、设备及系统 | |
CN110287245B (zh) | 用于分布式etl任务调度执行的方法及系统 | |
CN104317928A (zh) | 一种基于分布式数据库的业务etl方法及系统 | |
CN104504103B (zh) | 一种车辆轨迹点插入性能优化方法及系统、信息采集器、数据库模型 | |
CN104636417A (zh) | 管理数据的系统和方法 | |
CN106126601A (zh) | 一种社保大数据分布式预处理方法及系统 | |
CN103516802A (zh) | 一种实现跨异构虚拟交换机无缝迁移的方法和装置 | |
US20200401562A1 (en) | Parallel processing of filtered transaction logs | |
CN106059792B (zh) | 一种低延迟的流量解析处理方法 | |
CN106775493B (zh) | 一种存储控制器及io请求处理方法 | |
CN106294546B (zh) | 一种内存存储设备端口状态数据的方法 | |
CN108763093A (zh) | 一种自动化测试方法和系统 | |
EP3285187A1 (en) | Optimized merge-sorting of data retrieved from parallel storage units | |
CN110471944A (zh) | 指标统计方法、系统、设备及存储介质 | |
CN108551490A (zh) | 一种工业流数据编码解码系统及方法 | |
CN109669915A (zh) | 一种计算机任务管理方法、装置及相关设备 | |
CN110347407A (zh) | 一种获取内存占用量的方法、装置、计算机设备及介质 | |
CN113839835A (zh) | 一种基于小流过滤的Top-k流精确监控架构 | |
CN112148779A (zh) | 确定业务指标的方法、装置及存储介质 | |
CN105138676A (zh) | 基于高级语言并发聚合计算的分库分表merge查询方法 | |
CN110175100A (zh) | 一种存储盘故障预测方法及预测系统 | |
CN112118127B (zh) | 一种基于故障相似度的服务可靠性保障方法 | |
CN107436904A (zh) | 数据获取方法及其设备 | |
CN105577756A (zh) | 采用交叉备份的分布式数据库日志收集与负载调节系统及其方法 | |
CN112558869A (zh) | 基于大数据遥感影像缓存方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |