基于Netty框架的终端设备数据采集系统的制作方法

文档序号:16998025发布日期:2019-03-02 01:31阅读:1272来源:国知局

本发明涉及数据采集技术领域,特别涉及基于netty框架的数据采集技术。



背景技术:

随着物联网、大数据的发展,越来越多的终端数据要求接入到大数据平台。现有数据采集基本是定制化开发:(1)根据终端设备的特点,约定上报的通信方式、上报的数据协议,后端基于spring框架,进行基于http协议的接口开发,提供给终端设备调用,完成数据上报,不具备通用性。(2)现有采集模式为满足大数量的终端设备数据采集需求,依赖于传统多线程服务的监听、接收、处理模式,线程数量过多时,系统任务调度压力大,负载过高,容易发生服务阻塞,中断,数据漏采等情况。



技术实现要素:

本发明为解决现有终端设备数据采集系统采集数据时不具备通用性,无法动态调整线程数量的技术问题,提供一种基于netty框架的终端设备数据采集系统。

为解决上述技术问题,本发明采用的技术方案是:基于netty框架的终端设备数据采集系统,包括终端设备、数据采集服务器和数据库服务器,所述终端设备与数据采集服务器连接通信,数据采集服务器与数据库服务器连接通信;

所述终端设备用于向数据采集服务器发起连接请求,并在数据采集服务器接受连接请求后,将需要上报的数据发送到数据采集服务器;

所述数据采集服务器搭建有基于netty框架的数据采集服务的服务端,所述数据采集服务器用于提供数据采集接口,并创建线程池一和线程池二,线程池一中的线程用于处理终端设备的连接请求,线程池二中的线程用于处理网络读写操作,数据采集服务器与终端设备间通过bytebuf格式传输数据,数据采集服务器根据终端设备发起的连接请求数量动态调节线程池一和线程池二中运行的线程数量,并将获取到的数据发送到数据库服务器;

所述数据库服务器用于存储接收到的数据。

作为进一步优化,所述数据采集接口基于spring框架编程,采用restful接口。采用restful设计风格,能够使接口开发更简洁、更有层次。

作为进一步优化,采用springaop侦听所有数据采集接口的连接请求。采用面向切面编程,能够降低代码间的耦合度。

作为进一步优化,所述终端设备为需要上报的数据添加自身的设备类型标识后,将需要上报的数据发送到数据采集服务器。按照设备的类型对数据进行标识,帮助服务器完成数据的分类,减少服务器的负担,有利于加快数据采集。

作为进一步优化,所述数据库服务器根据接收到的数据对应的设备类型标识,将具有不同设备类型标识的数据分别进行存储。按照数据对应的终端设备类型对数据进行分类存储,有利于相关人员对数据的调用,减少查询数据消耗的时间。

作为进一步优化,所述数据库服务器采用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接口发起连接请求,数据采集服务器通过springaop侦听所有restful接口的连接请求,并通过线程池一中的线程处理逆变器设备的连接请求,并根据侦听到的连接请求数量动态调整线程池一中运行的线程数量。数据采集服务器接受逆变器设备的连接请求后,逆变器设备为需要上报的数据添加自身的设备类型标识,本例中设置逆变器设备的设备类型标识为inverter,标识添加完成后,逆变器设备将需要上报的数据通过bytebuf格式发送到数据采集服务器,数据采集服务器通过线程池二中的网络读写线程采集逆变器设备发送来的数据,并根据侦听到的连接请求数量动态调整线程池而中运行的线程数量。然后数据采集服务器对获取到的数据进行完整性判断并补充时间戳,然后将数据和数据对应的逆变器设备ip地址及采集时间封装成json格式发送到kafka数据库服务器。kafka数据库服务器预先建立设备类型标识inverter对应的消息队列,接收到数据采集服务器发送来的数据后,分析得到该数据对应的设备类型标识为inverter,则将该数据存储到设备类型标识inverter对应的消息队列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1