CN108259483A - 在线监测设备通信数据包通用接收方法 - Google Patents
在线监测设备通信数据包通用接收方法 Download PDFInfo
- Publication number
- CN108259483A CN108259483A CN201810014289.0A CN201810014289A CN108259483A CN 108259483 A CN108259483 A CN 108259483A CN 201810014289 A CN201810014289 A CN 201810014289A CN 108259483 A CN108259483 A CN 108259483A
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- line monitoring
- reception method
- monitoring equipment
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了在线监测设备通信数据包通用接收方法,包括TCP服务阻塞等待远程设备连接,开启goroutine机制,阻塞读取数据包信息,解析数据包,进行数据传输协议校验,解析出数据,数据库查表,保存数据;执行定时任务,销毁离线客户端。
Description
技术领域
本发明涉及监测设备技术领域,具体为在线监测设备通信数据包通用接收方法。
背景技术
就环保在线监测行业来说,数据通信必须要有一个中心接收服务程序,这个中心服务程序在理论上可以基于任何一门编程语言开发的,只要按照数据传输协议,正常并稳定运行,可同时解析多客户端的数据包即可。
本文涉及到的开发技术只有GO编程语言技术,利用GO编程语言的goroutine机制以及对计算机多核心开发出来的TCP接收服务程序,可以轻松解析数百万设备同时在线的数据包。
以往技术局限于条件解析,比如监测的是水数据只能解析出水数据,想在此基础上再增加一种监测功能却无能为力。本TCP接收服务程序,无此限制,只依赖定义了什么样的传输协议,基于定义好的协议,可灵活解析任何类型的数据包。
传统的解决方法,运用原技术来解决所存在的缺点有以下几点:
(1)接受监测类型有局限性,比如是水的就只能是水,是气的只能是气。
(2)数据存储的结构必须提前创建好,这些结构只能对应一个监测类型,改动性不强。
(3)原技术主要使用的是Java语言开发。需要较大的内存空间来收集数据。
(4)Java开发的代码量相对来说比较多,数据运算时间比较长。
发明内容
本发明的目的在于提供在线监测设备通信数据包通用接收方法,解决了背景技术中所提出的问题。
为实现上述目的,本发明提供如下技术方案:在线监测设备通信数据包通用接收方法,包括TCP服务阻塞等待远程设备连接,开启goroutine机制,阻塞读取数据包信息,解析数据包,进行数据传输协议校验,解析出数据,数据库查表,保存数据;执行定时任务,销毁离线客户端。具体步骤为:
步骤一:远程设备数据传输;
步骤二:TCP服务;
步骤三:goroutine调度机制;
步骤四:读取字符流;
步骤五:取出包头信息;
步骤六:协议校验;
步骤七:解析出数据;
步骤八:查询相对应表;
步骤九:创建表名;
步骤十:保存数据库;
步骤十一:执行任务;
步骤十二:删除数据库记录;
步骤十三:客户端状态判断。
作为本发明的一种优选实施方式,所述远程设备数据传输:监测现场设备所传来的数据。
作为本发明的一种优选实施方式,所述TCP服务:监听远程设备是否连接,若连接,则开启一条goroutine,若不连接,则继续阻塞等待。
作为本发明的一种优选实施方式,所述goroutine调度机制:若没启用多核心配置参数,每个goroutine都在一个CPU中处理,若启用了,则每个goroutine随机分配到多个CPU中处理。
作为本发明的一种优选实施方式,所述读取字符流:将连接通道中的字节流数据读出,如果没有就处于等待状态。
作为本发明的一种优选实施方式,所述解析出数据:解析出来数据进行想数据库保存。
作为本发明的一种优选实施方式,所述查询相对应的表:根据所解析后的数据进行判断,若有表,则直接插入保存到数据库。
作为本发明的一种优选实施方式,所述保存数据库;将对应的数据保存到对应的数据表。
作为本发明的一种优选实施方式,所述取出包头信息:获取这一次传输的数据包中包头固定的信息。
作为本发明的一种优选实施方式,所述符合协议:判断是否符合协议包,不符合,则跳回到步骤三,符合,则继续执行步骤五。
作为本发明的一种优选实施方式,所述执行任务:在步骤三执行完后,开启一条独立的goroutine进行定时任务处理,按指定的时刻清理一次历史数据。
作为本发明的一种优选实施方式,所述创建表名:对解析后的数据进行动态建表,因为无法预知收集回来的数据是属于水类型,还是气类型,还是水气类型混合的,同时依据监测类型动态生成表字段。
作为本发明的一种优选实施方式,所述保存数据库:把数据保存到数据库中。
作为本发明的一种优选实施方式,所述客户端状态:保存完后,回到信息读取状态,如果在指定时间内没数据传入,说明客户端离线,此时进行离线客户端销毁,释放连接资源。
与现有技术相比,本发明的有益效果如下:
1、在新技术中,从数据解析到分包,再到保存到数据库,整个过程的每个环节都细腻处理,解决各种多问题。比如在保存到数据库时,先提前判断,是否有存在此表,如没有,动态创建数据库表再进行创建,如果客户端离线则释放连接,在代码量方面,整个TCP服务程序的核心代码不足一千行,极简的代码,易于维护。
2、对比原始技术,收集是数据多元化的,不再是一对一的监测类型数据的收集与保存,这样远远是满足不了目前和将来的需求。
3、处理具体化,对具体问题具体加以分析,如在数据存储表时,动态创建表来保存数据,在存储完数据后,进行离线客户端销毁或回到阻塞式数据读取。
4、数据灵活化,自定义协议解析数据包,对读取字符流的协议自定义化。那样随着时代发展、设备技术不断更新,也自然跟着改动,新技术不局限于环保行业的数据通信。
5、轻量级的TCP服务程序,基于传统的Java多线程技术开发的TCP服务程序占用内存大,开发的工程量大,而基于goroutine开发的TCP服务程序占内存小,开发工程量小,而且可以利用计算机多核心的处理能力,加速数据的处理。
6、可利用多核心,步骤三goroutine调度机制,启用多核心配置。
7、易维护,增加步骤十:创建表名,增加步骤十一:执行任务,增加步骤十二:删除数据库记录,增加步骤十三:离线客户端销毁,修改步骤八:查询相对应表。
附图说明
图1为本发明在线监测设备通信数据包通用接收方法的整体结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:在线监测设备通信数据包通用接收方法,包括TCP服务阻塞等待远程设备连接,开启goroutine机制,阻塞读取数据包信息,解析数据包,进行数据传输协议校验,解析出数据,数据库查表,保存数据;执行定时任务,销毁离线客户端。其特征在于:具体步骤为:
步骤一:远程设备数据传输;
步骤二:TCP服务;
步骤三:goroutine调度机制;
步骤四:读取字符流;
步骤五:取出包头信息;
步骤六:协议校验;
步骤七:解析出数据;
步骤八:查询相对应表;
步骤九:创建表名;
步骤十:保存数据库;
步骤十一:执行任务;
步骤十二:删除数据库记录;
步骤十三:客户端状态判断。
在新技术中,在从数据解析到分包,再到保存到数据库,整个过程的每个环节都细腻处理,解决各种多问题。比如在保存到数据库时,先提前判断,是否有存在此表,如没有,动态创建数据库表再进行创建,如果客户端离线则释放连接,在代码量方面,整个TCP服务程序的核心代码不足一千行,极简的代码,易于维护。对比原始技术,收集是数据多元化的,不再是一对一的监测类型数据的收集与保存,这样远远是满足不了目前和将来的需求。处理具体化,对具体问题具体加以分析,如在数据存储表时,动态创建表来保存数据,在存储完数据后,进行离线客户端销毁或回到阻塞式数据读取。数据灵活化,自定义协议解析数据包,对读取字符流的协议自定义化。那样随着时代发展、设备技术不断更新,也自然跟着改动。新技术不局限于环保行业的数据通信,轻量级的TCP服务程序,基于传统的Java多线程技术开发的TCP服务程序占用内存大,开发的工程量大,而基于goroutine开发的TCP服务程序占内存小,开发工程量小,而且可以利用计算机多核心的处理能力,加速数据的处理。
所述远程设备数据传输:监测现场设备所传来的数据。
所述TCP服务:监听远程设备是否连接,若连接,则开启一条goroutine,若不连接,则继续阻塞等待。
所述goroutine调度机制:若没启用多核心配置参数,每个goroutine都在一个CPU中处理,若启用了,则每个goroutine随机分配到多个CPU中处理。
所述读取字符流:将连接通道中的字节流数据读出,如果没有就处于等待状态。
所述解析出数据:解析出来数据进行想数据库保存。
所述查询相对应的表:根据所解析后的数据进行判断,若有表,则直接插入保存到数据库。
所述保存数据库;将对应的数据保存到对应的数据表。
所述取出包头信息:获取这一次传输的数据包中包头固定的信息。
所述符合协议:判断是否符合协议包,不符合,则跳回到步骤三,符合,则继续执行步骤五。
所述执行任务:在步骤三执行完后,开启一条独立的goroutine进行定时任务处理,按指定的时刻清理一次历史数据。
所述创建表名:对解析后的数据进行动态建表,因为无法预知收集回来的数据是属于水类型,还是气类型,还是水气类型混合的,同时依据监测类型动态生成表字段。
所述保存数据库:把数据保存到数据库中。
所述客户端状态:保存完后,回到信息读取状态,如果在指定时间内没数据传入,说明客户端离线,此时进行离线客户端销毁,释放连接资源。可利用多核心:步骤三goroutine调度机制,启用多核心配置。增加步骤十:创建表名,增加步骤十一:执行任务,增加步骤十二:删除数据库记录,增加步骤十三:离线客户端销毁,修改步骤八:查询相对应表。
工作原理:在线监测设备通信数据包通用接收方法通过以下步骤实现:远程设备数据传输、TCP服务、goroutine调度机制、读取字符流、取出包头信息、符合协议、解析出数据、查询相对应表、创建表名、保存数据库、执行任务、删除数据库记录和客户端状态判断,如此往复循环。
从数据解析到分包,再到保存到数据库,整个过程的每个环节都细腻处理,解决各种多问题。比如在保存到数据库时,先提前判断,是否有存在此表,如没有,动态创建数据库表再进行数据存储,如果客户端离线则释放连接,在代码量方面,整个TCP服务程序的核心代码不足一千行,极简的代码,易于维护。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.在线监测设备通信数据包通用接收方法,包括TCP服务阻塞等待远程设备连接,开启goroutine机制,阻塞读取数据包信息,解析数据包,进行数据传输协议校验,解析出数据,数据库查表,保存数据;执行定时任务,销毁离线客户端。其特征在于:具体步骤为:
步骤一:远程设备数据传输;
步骤二:TCP服务;
步骤三:goroutine调度机制;
步骤四:读取字符流;
步骤五:取出包头信息;
步骤六:协议校验;
步骤七:解析出数据;
步骤八:查询相对应表;
步骤九:创建表名;
步骤十:保存数据库;
步骤十一:执行任务;
步骤十二:删除数据库记录;
步骤十三:客户端状态判断。
2.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述远程设备数据传输:监测现场设备所传来的数据。
3.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述TCP服务:监听远程设备是否连接,若连接,则开启一条goroutine,若不连接,则继续阻塞等待。
4.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述goroutine调度机制:若没启用多核心配置参数,每个goroutine都在一个CPU中处理,若启用了,则每个goroutine随机分配到多个CPU中处理。
5.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述读取字符流:将连接通道中的字节流数据读出,如果没有就处于等待状态。
6.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述解析出数据:解析出来数据进行想数据库保存。
7.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述查询相对应的表:根据所解析后的数据进行判断,若有表,则直接插入保存数据到数据库。
8.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述保存数据库;将对应的数据保存到对应的数据表。
9.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述取出包头信息:获取这一次传输的数据包中包头固定的信息。
10.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述符合协议:判断是否符合协议包,不符合,则跳回到步骤三,符合,则继续执行步骤五。
11.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述执行任务:在步骤三执行完后,开启一条独立的goroutine进行定时任务处理,按指定的时刻清理一次历史数据。
12.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述创建表名:对解析后的数据进行动态建表,因为无法预知收集回来的数据是属于水类型,还是气类型,还是水气类型混合的,同时依据监测类型动态生成表字段。
13.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述保存数据库:把数据保存到数据库中。
14.根据权利要求1所述的在线监测设备通信数据包通用接收方法,其特征在于:所述客户端状态:保存完后,回到信息读取状态,如果在指定时间内没数据传入,说明客户端离线,此时进行离线客户端销毁,释放连接资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014289.0A CN108259483A (zh) | 2018-01-08 | 2018-01-08 | 在线监测设备通信数据包通用接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014289.0A CN108259483A (zh) | 2018-01-08 | 2018-01-08 | 在线监测设备通信数据包通用接收方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108259483A true CN108259483A (zh) | 2018-07-06 |
Family
ID=62725003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810014289.0A Pending CN108259483A (zh) | 2018-01-08 | 2018-01-08 | 在线监测设备通信数据包通用接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108259483A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086688A (zh) * | 2019-04-18 | 2019-08-02 | 上海锵戈科技有限公司 | 一种多监测任务多目标高效ip端性能监测调度方法及系统 |
CN110990667A (zh) * | 2019-10-29 | 2020-04-10 | 内蒙古大学 | 一种基于协程技术的多端大学生电子档案管理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135403A (zh) * | 2014-07-25 | 2014-11-05 | 成都蓝宇科维科技有限公司 | 一种分布式环境监测数据传输校验方法 |
CN104142858A (zh) * | 2013-11-29 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
CN105760237A (zh) * | 2016-02-05 | 2016-07-13 | 南京贝伦思网络科技股份有限公司 | 一种基于协程机制的通讯方法 |
CN107436904A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 数据获取方法及其设备 |
-
2018
- 2018-01-08 CN CN201810014289.0A patent/CN108259483A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142858A (zh) * | 2013-11-29 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
CN104135403A (zh) * | 2014-07-25 | 2014-11-05 | 成都蓝宇科维科技有限公司 | 一种分布式环境监测数据传输校验方法 |
CN105760237A (zh) * | 2016-02-05 | 2016-07-13 | 南京贝伦思网络科技股份有限公司 | 一种基于协程机制的通讯方法 |
CN107436904A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 数据获取方法及其设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086688A (zh) * | 2019-04-18 | 2019-08-02 | 上海锵戈科技有限公司 | 一种多监测任务多目标高效ip端性能监测调度方法及系统 |
CN110990667A (zh) * | 2019-10-29 | 2020-04-10 | 内蒙古大学 | 一种基于协程技术的多端大学生电子档案管理系统 |
CN110990667B (zh) * | 2019-10-29 | 2023-06-23 | 内蒙古大学 | 一种基于协程技术的多端大学生电子档案管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105959151B (zh) | 一种高可用的流式处理系统及方法 | |
CN105471869B (zh) | 一种互联网电视内容请求的连接复用方法及系统 | |
CN101188570B (zh) | 即时消息处理系统及方法 | |
CN102622289B (zh) | 程序设置方法、程序监控方法与装置、系统 | |
CN101739296B (zh) | 数据处理系统和方法 | |
CN103095819A (zh) | 推送数据信息的方法及数据信息推送系统 | |
CN108259483A (zh) | 在线监测设备通信数据包通用接收方法 | |
CN112118174A (zh) | 软件定义数据网关 | |
CN108287905A (zh) | 一种网络流特征的提取与存储方法 | |
CN108683697A (zh) | 连接Redis内存数据库的方法、系统、选择器和服务器 | |
CN107992367A (zh) | 一种Modbus串口数据处理方法 | |
CN108566369A (zh) | 基于工业大数据的数据采集系统及方法 | |
CN105760459A (zh) | 一种分布式数据处理系统及方法 | |
CN104639386B (zh) | 故障定位系统和方法 | |
CN106972975A (zh) | 一种服务器管理方法及系统 | |
CN103064353B (zh) | 针织横机远程控制方法 | |
CN114510476A (zh) | 基于ccsds源包体制的遥测数据多路并行处理系统及方法 | |
CN101770511B (zh) | 一种用于移动通讯设备终端加快回退操作的浏览系统及其应用方法 | |
CN106850559A (zh) | 一种可扩展的网络协议解析系统及方法 | |
CN112565231A (zh) | 基于电力调度数据网安全ii区和iii区数据同步方法及装置 | |
CN111241101A (zh) | 一种分布式水利rtu数据采集系统及方法 | |
CN106685856A (zh) | 智能变电站海量网络报文处理方法、系统和设备 | |
CN108696389B (zh) | 一种基于海量数据的网络流量及协议报文分析平台 | |
CN103052088B (zh) | 流量计算系统及方法 | |
CN108234606A (zh) | 一种消息管理方法及管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180706 |
|
WD01 | Invention patent application deemed withdrawn after publication |