CN109408240A - 基于Netty框架的终端设备数据采集系统 - Google Patents
基于Netty框架的终端设备数据采集系统 Download PDFInfo
- Publication number
- CN109408240A CN109408240A CN201811287838.8A CN201811287838A CN109408240A CN 109408240 A CN109408240 A CN 109408240A CN 201811287838 A CN201811287838 A CN 201811287838A CN 109408240 A CN109408240 A CN 109408240A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- data acquisition
- terminal device
- thread pool
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明涉及数据采集技术领域,解决了现有数据采集系统不具备通用性,无法动态调整线程数量的问题。技术方案概括为:本发明基于Netty框架,数据采集服务器搭建有基于Netty框架的数据采集服务的服务端,提供数据采集接口,创建线程池一和线程池二,线程池一中的线程用于处理终端设备的连接请求,线程池二中的线程用于处理网络读写操作,并根据终端设备发起的连接请求数量动态调节线程池一和线程池二中运行的线程数量,数据采集服务器与终端设备间通过ByteBuf格式传输数据。本发明基于Netty框架采集终端设备数据,服务器与终端统一按ByteBuf格式传输数据,通用性高,并能动态调整运行的线程数量,减少资源耗费。特别适用于大数据采集系统。
Description
技术领域
本发明涉及数据采集技术领域,特别涉及基于Netty框架的数据采集技术。
背景技术
随着物联网、大数据的发展,越来越多的终端数据要求接入到大数据平台。现有数据采集基本是定制化开发:(1)根据终端设备的特点,约定上报的通信方式、上报的数据协议,后端基于Spring框架,进行基于HTTP协议的接口开发,提供给终端设备调用,完成数据上报,不具备通用性。(2)现有采集模式为满足大数量的终端设备数据采集需求,依赖于传统多线程服务的监听、接收、处理模式,线程数量过多时,系统任务调度压力大,负载过高,容易发生服务阻塞,中断,数据漏采等情况。
发明内容
本发明为解决现有终端设备数据采集系统采集数据时不具备通用性,无法动态调整线程数量的技术问题,提供一种基于Netty框架的终端设备数据采集系统。
为解决上述技术问题,本发明采用的技术方案是:基于Netty框架的终端设备数据采集系统,包括终端设备、数据采集服务器和数据库服务器,所述终端设备与数据采集服务器连接通信,数据采集服务器与数据库服务器连接通信;
所述终端设备用于向数据采集服务器发起连接请求,并在数据采集服务器接受连接请求后,将需要上报的数据发送到数据采集服务器;
所述数据采集服务器搭建有基于Netty框架的数据采集服务的服务端,所述数据采集服务器用于提供数据采集接口,并创建线程池一和线程池二,线程池一中的线程用于处理终端设备的连接请求,线程池二中的线程用于处理网络读写操作,数据采集服务器与终端设备间通过ByteBuf格式传输数据,数据采集服务器根据终端设备发起的连接请求数量动态调节线程池一和线程池二中运行的线程数量,并将获取到的数据发送到数据库服务器;
所述数据库服务器用于存储接收到的数据。
作为进一步优化,所述数据采集接口基于spring框架编程,采用restful接口。采用restful设计风格,能够使接口开发更简洁、更有层次。
作为进一步优化,采用spring aop侦听所有数据采集接口的连接请求。采用面向切面编程,能够降低代码间的耦合度。
作为进一步优化,所述终端设备为需要上报的数据添加自身的设备类型标识后,将需要上报的数据发送到数据采集服务器。按照设备的类型对数据进行标识,帮助服务器完成数据的分类,减少服务器的负担,有利于加快数据采集。
作为进一步优化,所述数据库服务器根据接收到的数据对应的设备类型标识,将具有不同设备类型标识的数据分别进行存储。按照数据对应的终端设备类型对数据进行分类存储,有利于相关人员对数据的调用,减少查询数据消耗的时间。
作为进一步优化,所述数据库服务器采用kafka数据库服务器,所述kafka数据库服务器为每个设备类型标识建立对应的消息队列,并根据接收到的数据对应的设备类型标识,将数据存储到对应的消息队列。采用kafka数据库能够提高大量消息长时间存储的稳定性,并且具有高吞吐量。
作为进一步优化,所述数据采集服务器对获取到的数据进行完整性判断并补充时间戳,然后将数据和数据对应的终端设备IP地址及采集时间封装成json格式发送到数据库服务器。对采集到的数据进行简单的校验和处理后进行存储,有利于提高采集数据的准确性和规范性。
作为进一步优化,所述数据采集服务器采用集群服务器。采用集群服务器能够更好的满足大量数据的采集工作。
有益效果是:本发明基于Netty框架,针对所有终端设备,提供了统一的数据采集接口,数据采集服务器与终端设备间统一按ByteBuf格式传输数据,通用性高,并且省去了终端设备对数据的处理、封装过程,节省终端设备时间开支,提高终端设备数据发送效率。服务器端基于灵活可扩展的事件驱动模型,线程模型高度可定制化,能够根据终端设备请求数量灵活调整线程数量,在数据量小的情况下,Netty的事件机制下线程会进行休眠,等待数据到来,不进行循环监听,减少资源耗费。本发明特别适用于大数据采集系统。
具体实施方式
下面结合实施例,进一步说明本发明的技术方案。
本发明的技术方案是:基于Netty框架的终端设备数据采集系统,包括终端设备、数据采集服务器和数据库服务器,所述终端设备与数据采集服务器连接通信,数据采集服务器与数据库服务器连接通信;
所述终端设备用于向数据采集服务器发起连接请求,并在数据采集服务器接受连接请求后,将需要上报的数据发送到数据采集服务器;
所述数据采集服务器搭建有基于Netty框架的数据采集服务的服务端,所述数据采集服务器用于提供数据采集接口,并创建线程池一和线程池二,线程池一中的线程用于处理终端设备的连接请求,线程池二中的线程用于处理网络读写操作,数据采集服务器与终端设备间通过ByteBuf格式传输数据,数据采集服务器根据终端设备发起的连接请求数量动态调节线程池一和线程池二中运行的线程数量,并将获取到的数据发送到数据库服务器;
所述数据库服务器用于存储接收到的数据。
对上述系统进行优化,具体可以是:数据采集接口可以基于spring框架编程,采用restful接口,采用restful设计风格,能够使接口开发更简洁、更有层次。可以采用springaop侦听所有数据采集接口的连接请求,采用面向切面编程,能够降低代码间的耦合度。
终端设备可以为需要上报的数据添加自身的设备类型标识后,将需要上报的数据发送到数据采集服务器,按照设备的类型对数据进行标识,帮助服务器完成数据的分类,减少服务器的负担,有利于加快数据采集。数据库服务器可以根据接收到的数据对应的设备类型标识,将具有不同设备类型标识的数据分别进行存储,按照数据对应的终端设备类型对数据进行分类存储,有利于相关人员对数据的调用,减少查询数据消耗的时间。进一步,数据库服务器可以采用kafka数据库服务器,所述kafka数据库服务器为每个设备类型标识建立对应的消息队列,并根据接收到的数据对应的设备类型标识,将数据存储到对应的消息队列,采用kafka数据库能够提高大量消息长时间存储的稳定性,并且具有高吞吐量。
数据采集服务器可以对获取到的数据进行完整性判断并补充时间戳,然后将数据和数据对应的终端设备IP地址及采集时间封装成json格式发送到数据库服务器。对采集到的数据进行简单的校验和处理后进行存储,有利于提高采集数据的准确性和规范性。
数据采集服务器可以采用集群服务器,采用集群服务器能够更好的满足大量数据的采集工作。
实施例
下面以终端设备采用逆变器设备,数据库服务器采用kafka数据库服务器为例具体说明。
本例的基于Netty框架的终端设备数据采集系统,包括逆变器设备、数据采集服务器和kafka数据库服务器,逆变器设备与数据采集服务器连接通信,数据采集服务器与kafka数据库服务器连接通信。
数据采集服务器搭建有基于Netty框架的数据采集服务的服务端,数据采集服务器提供数据采集接口,数据采集接口基于spring框架编程,采用restful接口。数据采集服务器创建线程池一和线程池二,线程池一中的线程用于处理逆变器设备的连接请求,线程池二中的线程用于处理网络读写操作。
需要上报数据时,逆变器设备向数据采集服务器的restful接口发起连接请求,数据采集服务器通过spring aop侦听所有restful接口的连接请求,并通过线程池一中的线程处理逆变器设备的连接请求,并根据侦听到的连接请求数量动态调整线程池一中运行的线程数量。数据采集服务器接受逆变器设备的连接请求后,逆变器设备为需要上报的数据添加自身的设备类型标识,本例中设置逆变器设备的设备类型标识为inverter,标识添加完成后,逆变器设备将需要上报的数据通过ByteBuf格式发送到数据采集服务器,数据采集服务器通过线程池二中的网络读写线程采集逆变器设备发送来的数据,并根据侦听到的连接请求数量动态调整线程池而中运行的线程数量。然后数据采集服务器对获取到的数据进行完整性判断并补充时间戳,然后将数据和数据对应的逆变器设备IP地址及采集时间封装成json格式发送到kafka数据库服务器。kafka数据库服务器预先建立设备类型标识inverter对应的消息队列,接收到数据采集服务器发送来的数据后,分析得到该数据对应的设备类型标识为inverter,则将该数据存储到设备类型标识inverter对应的消息队列。
Claims (8)
1.基于Netty框架的终端设备数据采集系统,其特征在于:包括终端设备、数据采集服务器和数据库服务器,所述终端设备与数据采集服务器连接通信,数据采集服务器与数据库服务器连接通信;
所述终端设备用于向数据采集服务器发起连接请求,并在数据采集服务器接受连接请求后,将需要上报的数据发送到数据采集服务器;
所述数据采集服务器搭建有基于Netty框架的数据采集服务的服务端,所述数据采集服务器用于提供数据采集接口,并创建线程池一和线程池二,线程池一中的线程用于处理终端设备的连接请求,线程池二中的线程用于处理网络读写操作,数据采集服务器与终端设备间通过ByteBuf格式传输数据,数据采集服务器根据终端设备发起的连接请求数量动态调节线程池一和线程池二中运行的线程数量,并将获取到的数据发送到数据库服务器;
所述数据库服务器用于存储接收到的数据。
2.如权利要求1所述的基于Netty框架的终端设备数据采集系统,其特征在于:所述数据采集接口基于spring框架编程,采用restful接口。
3.如权利要求2所述的基于Netty框架的终端设备数据采集系统,其特征在于:采用spring aop侦听所有数据采集接口的连接请求。
4.如权利要求1所述的基于Netty框架的终端设备数据采集系统,其特征在于:所述终端设备为需要上报的数据添加自身的设备类型标识后,将需要上报的数据发送到数据采集服务器。
5.如权利要求4所述的基于Netty框架的终端设备数据采集系统,其特征在于:所述数据库服务器根据接收到的数据对应的设备类型标识,将具有不同设备类型标识的数据分别进行存储。
6.如权利要求5所述的基于Netty框架的终端设备数据采集系统,其特征在于:所述数据库服务器采用kafka数据库服务器,所述kafka数据库服务器为每个设备类型标识建立对应的消息队列,并根据接收到的数据对应的设备类型标识,将数据存储到对应的消息队列。
7.如权利要求1所述的基于Netty框架的终端设备数据采集系统,其特征在于:所述数据采集服务器对获取到的数据进行完整性判断并补充时间戳,然后将数据和数据对应的终端设备IP地址及采集时间封装成json格式发送到数据库服务器。
8.如权利要求1所述的基于Netty框架的终端设备数据采集系统,其特征在于:所述数据采集服务器采用集群服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811287838.8A CN109408240A (zh) | 2018-10-31 | 2018-10-31 | 基于Netty框架的终端设备数据采集系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811287838.8A CN109408240A (zh) | 2018-10-31 | 2018-10-31 | 基于Netty框架的终端设备数据采集系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109408240A true CN109408240A (zh) | 2019-03-01 |
Family
ID=65470650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811287838.8A Pending CN109408240A (zh) | 2018-10-31 | 2018-10-31 | 基于Netty框架的终端设备数据采集系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408240A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992432A (zh) * | 2019-03-15 | 2019-07-09 | 青岛海信移动通信技术股份有限公司 | 一种基于消息队列的数据处理系统及方法 |
CN110460534A (zh) * | 2019-07-26 | 2019-11-15 | 腾讯云计算(北京)有限责任公司 | 一种请求消息上报方法、装置、设备及存储介质 |
CN110809029A (zh) * | 2019-10-17 | 2020-02-18 | 国电南瑞科技股份有限公司 | 一种基于内存队列的多种运维指标数据接收的管理方法 |
CN110995538A (zh) * | 2019-12-03 | 2020-04-10 | 北京博睿宏远数据科技股份有限公司 | 网络数据采集方法、装置、系统、设备及存储介质 |
CN112532736A (zh) * | 2020-12-07 | 2021-03-19 | 珠海驿联新能源汽车有限公司 | 一种基于Spring依赖注入的物联网智能设备数据采集方法 |
CN112559146A (zh) * | 2020-12-07 | 2021-03-26 | 河南中烟工业有限责任公司 | 一种客户端与数据终端服务端的通讯方法 |
CN114338481A (zh) * | 2022-02-24 | 2022-04-12 | 重庆伏特猫科技有限公司 | 一种基于Netty框架的终端设备数据采集系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283967A (zh) * | 2014-10-23 | 2015-01-14 | 武汉华大优能信息有限公司 | 一种基于物联网数据采集的第三方数据服务系统 |
CN105635298A (zh) * | 2016-01-12 | 2016-06-01 | 安徽科力信息产业有限责任公司 | 一种基于业务隔离原理的数据采集设备统一接入系统 |
CN106529195A (zh) * | 2016-12-02 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种数据采集解析方法及装置 |
US20170364558A1 (en) * | 2016-06-21 | 2017-12-21 | Columbus Technology LLC | System and methods for processing large scale data |
CN108234614A (zh) * | 2017-12-25 | 2018-06-29 | 华南理工大学 | 一种基于自定义协议及Netty框架的交互方法 |
-
2018
- 2018-10-31 CN CN201811287838.8A patent/CN109408240A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283967A (zh) * | 2014-10-23 | 2015-01-14 | 武汉华大优能信息有限公司 | 一种基于物联网数据采集的第三方数据服务系统 |
CN105635298A (zh) * | 2016-01-12 | 2016-06-01 | 安徽科力信息产业有限责任公司 | 一种基于业务隔离原理的数据采集设备统一接入系统 |
US20170364558A1 (en) * | 2016-06-21 | 2017-12-21 | Columbus Technology LLC | System and methods for processing large scale data |
CN106529195A (zh) * | 2016-12-02 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种数据采集解析方法及装置 |
CN108234614A (zh) * | 2017-12-25 | 2018-06-29 | 华南理工大学 | 一种基于自定义协议及Netty框架的交互方法 |
Non-Patent Citations (1)
Title |
---|
彭玉柱等: "基于多线程机制的电力数据采集系统设计与实现", 《计算机应用与软件》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992432A (zh) * | 2019-03-15 | 2019-07-09 | 青岛海信移动通信技术股份有限公司 | 一种基于消息队列的数据处理系统及方法 |
CN110460534A (zh) * | 2019-07-26 | 2019-11-15 | 腾讯云计算(北京)有限责任公司 | 一种请求消息上报方法、装置、设备及存储介质 |
CN110809029A (zh) * | 2019-10-17 | 2020-02-18 | 国电南瑞科技股份有限公司 | 一种基于内存队列的多种运维指标数据接收的管理方法 |
CN110995538A (zh) * | 2019-12-03 | 2020-04-10 | 北京博睿宏远数据科技股份有限公司 | 网络数据采集方法、装置、系统、设备及存储介质 |
CN110995538B (zh) * | 2019-12-03 | 2022-01-07 | 北京博睿宏远数据科技股份有限公司 | 网络数据采集方法、装置、系统、设备及存储介质 |
CN112532736A (zh) * | 2020-12-07 | 2021-03-19 | 珠海驿联新能源汽车有限公司 | 一种基于Spring依赖注入的物联网智能设备数据采集方法 |
CN112559146A (zh) * | 2020-12-07 | 2021-03-26 | 河南中烟工业有限责任公司 | 一种客户端与数据终端服务端的通讯方法 |
CN112532736B (zh) * | 2020-12-07 | 2022-12-06 | 珠海驿联新能源汽车有限公司 | 一种基于Spring依赖注入的物联网智能设备数据采集方法 |
CN112559146B (zh) * | 2020-12-07 | 2023-04-18 | 河南中烟工业有限责任公司 | 一种客户端与数据终端服务端的通讯方法 |
CN114338481A (zh) * | 2022-02-24 | 2022-04-12 | 重庆伏特猫科技有限公司 | 一种基于Netty框架的终端设备数据采集系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408240A (zh) | 基于Netty框架的终端设备数据采集系统 | |
WO2015196892A1 (zh) | 工业自动化数据的采集方法及装置、系统 | |
PH12019000009A1 (en) | Systems and methods for maintaining batteries based on usage | |
CN105912703A (zh) | 数据存储方法、查询方法及装置 | |
CN105608758A (zh) | 一种基于算法组态和分布式流计算的大数据分析平台装置及方法 | |
CN108989358B (zh) | 一种基于tcp/ip协议纺机运行数据获取方法 | |
CN103873287B (zh) | 一种基于企业服务总线消息监控平台的消息补偿方法 | |
CN104503894A (zh) | 分布式服务器状态实时监测系统及方法 | |
CN106161074A (zh) | 一种云终端日志处理方法、装置及系统 | |
CN105786592A (zh) | 一种分布式事务的处理方法及装置 | |
CN109347959A (zh) | 一种光伏电站移动监控系统 | |
CN107566516A (zh) | 并发量控制方法、应用服务器、系统及存储介质 | |
CN105243499A (zh) | 订单分配方法及系统 | |
CN103957280A (zh) | 一种物联网中的传感网络连接分配和调度方法 | |
SG11201809215TA (en) | Method, device, storage medium and terminal for modifying account name | |
CN109327511A (zh) | 一种基于http协议的数据请求方法和服务器 | |
CN105467907A (zh) | 一种自动巡检的系统及方法 | |
CN109582531A (zh) | 电源分配单元的监控方法、装置及电子设备 | |
CN106569934A (zh) | 一种应用日志显示方法及装置 | |
CN102685257A (zh) | 数据同步处理系统、数据同步处理方法、服务器系统 | |
CN105636317B (zh) | 一种智能路灯管理系统及信息处理方法 | |
CN208255671U (zh) | 一种纸张生产车间运行监控装置 | |
CN104501848B (zh) | 一种变电设备的数据接入方法及系统 | |
CN109413185A (zh) | 一种设备巡检系统及其云服务器设计方法 | |
CN103618671B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190301 |