本发明实施例涉及物联网应用技术领域,尤其涉及一种数据采集方法、装置及服务器。
背景技术:
数据采集(dataacquisition,daq),是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析、处理。被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。
随着互联网行业的快速发展以及物联网产业的兴起,物联网设备已经被广泛用于数据采集。由于数据采集是基于数据传输协议,通过主机端口进行数据传输采集,因此数据采集的瓶颈在于网络瓶颈。受集群交换机的数据处理能力限制,当接入设备数超过预设阈值时,数据采集速度跟接入设备数成反比,无法高效运用网络带宽。在各种大数据应用场景下,物联网设备的接入量大大超过了传统网络数据交换的极限,进一步加剧了网络瓶颈的限制,甚至会导致网络瘫痪。
综上所述,现有数据采集方法无法支持巨量物联网设备同时接入网络,无法满足海量数据采集需求。
技术实现要素:
本发明实施例提供一种数据采集方法、装置及服务器,用以解决现有技术不支持巨量物联网设备同时接入网络的问题。
第一方面,本发明实施例提供一种数据采集方法,包括:
统计接入服务器的物联网设备的数量;
根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量,数据分发交换容器用于接收至少一个传输数据容器采集的数据,传输数据容器用于接收至少一个物联网设备采集的数据。
在一种可能的实现方式中,根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量包括:
若所统计的接入服务器的物联网设备的数量大于第一阈值,则根据所统计的接入服务器的物联网设备的数量,增加数据分发交换容器的数量,第一阈值根据当前服务器中数据分发交换容器的数量确定。
在一种可能的实现方式中,根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量包括:
若所统计的接入服务器的物联网设备的数量小于第二阈值,则根据所统计的接入服务器的物联网设备的数量,减少数据分发交换容器的数量,第二阈值根据当前服务器中数据分发交换容器的数量确定。
在一种可能的实现方式中,所述方法还包括:
统计数据分发交换容器的数量和传输数据容器的数量;
根据所统计的数据分发交换容器的数量和传输数据容器的数量,确定数据分发交换容器的数量。
在一种可能的实现方式中,根据所统计的数据分发交换容器的数量和传输数据容器的数量,确定数据分发交换容器的数量包括:
若传输数据容器的数量与数据分发交换容器的数量的比值大于第三阈值,则增加数据分发交换容器的数量。
在一种可能的实现方式中,所述方法还包括:
若与传输数据容器连接的物联网设备的数量降为第一预设数量时,则销毁该传输数据容器;
若与数据分发交换容器连接的传输数据容器的数量降为第二预设数量时,则销毁该数据分发交换容器。
在一种可能的实现方式中,在统计接入服务器的物联网设备的数量之前,所述方法还包括:
接收物联网设备发送的接入请求消息,接入请求消息包括物联网设备的设备编码信息;
根据设备编码信息确定是否允许物联网设备接入服务器。
第二方面,本发明实施例提供一种数据采集装置,包括:
统计模块,用于统计接入服务器的物联网设备的数量;
调整模块,用于根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量,数据分发交换容器用于接收至少一个传输数据容器采集的数据,传输数据容器用于接收至少一个物联网设备采集的数据。
第三方面,本发明实施例提供一种服务器,包括:
至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第一方面任一项所述的数据采集方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的数据采集方法。
本发明实施例提供的数据采集方法、装置及服务器,通过统计接入服务器的物联网设备的数量,并根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量。如此,实现了数据分发交换容器的数量可以根据接入的物联网设备的数量按需自适应调整,可以满足海量物联网设备同时接入网络时的数据采集需求,响应速度快,提高了数据采集的速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明提供的数据采集方法一实施例的流程图;
图2为本发明提供的数据采集方法一实施例的应用示意图;
图3为本发明提供的数据采集装置一实施例的结构示意图;
图4为本发明提供的服务器一实施例的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明的说明书和权利要求书中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明中的“第一”和“第二”只起标识作用,而不能理解为指示或暗示顺序关系、相对重要性或者隐含指明所指示的技术特征的数量。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明的说明书中通篇提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
图1为本发明提供的数据采集方法一实施例的流程图。本实施例提供的方法可以由网络侧设备,如服务器执行。如图1所示,本实施例提供的数据采集方法可以包括:
s101、统计接入服务器的物联网设备的数量。
本实施例中物联网设备可以通过蓝牙、红外、无线局域网、移动通信网络等无线通信方式接入服务器中,还可以通过有线通信方式接入服务器中,本实施例对于物联网设备接入服务器的方式不做特殊限制,各种接入方式均适用于本实施例。
本实施例中的物联网设备可以是各种传感器,例如温度传感器、水位传感器、风速传感器、压力传感器等。本实施例中接入服务器的物联网设备可以是相同种类的物联网设备,也可以是不同种类的物联网设备。
本实施例中服务器对于接入服务器的物联网设备的数量的统计可以是实时的,也可以是以预设时间间隔作为统计周期进行的,例如,可以每隔30秒对接入服务器的物联网设备的数量进行一次统计。
s102、根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量,数据分发交换容器用于接收至少一个传输数据容器采集的数据,传输数据容器用于接收至少一个物联网设备采集的数据。
本实施例中当物联网设备需要将所采集的数据发送至服务器时,首先需要建立到服务器的传输通道。本实施例中物联网设备在加入到网络中时,需要启动或者选择一个与之对应的传输数据容器,用于接收该物联网设备所采集的数据。本实施例中的传输数据容器用于接收至少一个物联网设备采集的数据。当有空闲的传输数据容器时,物联网设备从空闲的传输数据容器中选择一个建立传输通道。当不存在空闲的传输数据容器时,物联网设备触发服务器启动一个传输数据容器,建立传输通道。
本实施例中的数据分发交换容器用于接收至少一个传输数据容器采集的数据。数据分发交换容器通过网络带宽与其他系统交换数据,完成数据分发。
本实施例中数据分发交换容器的数量与接入服务器的物联网设备的数量正相关。也就是说,当接入服务器的物联网设备的数量增加时,数据分发交换容器的数量也增加;当接入服务器的物联网设备的数量减少时,数据分发交换容器的数量也减少。
本实施例中的数据分发交换容器和传输数据容器均可以采用虚拟化容器技术实现,例如可以采用docker实现,占用资源少,部署快,启动快。
图2为本发明提供的数据采集方法一实施例的应用示意图。如图2所示,物联网设备与传输数据容器一一对应,即每个传输数据容器仅用于接收一个物联网设备采集的数据;每个数据分发交换容器用于接收三个传输数据容器采集的数据。当有新的物联网设备接入时,需要启动一个与之一一对应的传输数据容器,当启动了三个传输数据容器时,需要新增一个数据分发交换容器来接收数据。依次类推,当接入服务器的物联网设备不断增多时,只需要按需增大数据分发交换容器的数量即可满足数据采集的需求。需要说明的是,图2仅是本发明实施例的一种可能的实现方式,数值仅做示例,并不对本申请形成限制。
本实施例提供的数据采集方法,通过统计接入服务器的物联网设备的数量,并根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量。如此,实现了数据分发交换容器的数量可以根据接入的物联网设备的数量按需自适应调整,可以满足海量物联网设备同时接入网络时的数据采集需求,响应速度快,提高了数据采集的速度。
在一些实施例中,根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量的一种实现方式可以是:
若所统计的接入服务器的物联网设备的数量大于第一阈值,则根据所统计的接入服务器的物联网设备的数量,增加数据分发交换容器的数量,第一阈值根据当前服务器中数据分发交换容器的数量确定。
本实施例中的第一阈值可以根据当前服务器中数据分发交换容器的数量来确定。举例来说,若当前服务器中启动的数据分发交换容器为10个,每个数据分发交换容器可以用于接收3个传输数据容器采集的数据,每个传输数据容器可以用于接收3个物联网设备采集的容器,则本实施例中的第一阈值可以设置为90(10*3*3)。即当统计的接入服务器的物联网设备的数量大于90时,需要增加数据分发交换容器。若统计的当前同时接入服务器的物联网设备的数量为120,则需要增加的数据分发交换容器的数量可以为
需要说明的是,本实施例中接入传输数据容器的物联网设备的数量,还可以根据传输数据容器的数据传输速率以及单个物联网设备的数据传输速率确定;接入数据分发交换容器的传输数据容器的数量,还可以根据数据分发交换容器的数据传输速率以及传输数据容量的数据传输速率确定。
本实施例提供的数据采集方法,通过在接入服务器的物联网设备的数量大于第一阈值,则根据所统计的接入服务器的物联网设备的数量,增加数据分发交换容器的数量。如此,通过在接入服务器的物联网设备的数量增加时,及时增加数据分发交换容器的数量,使得物联网设备所采集的数据能够快速传输,提高了数据采集速度。
在一些实施例中,根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量的一种实现方式可以是:
若所统计的接入服务器的物联网设备的数量小于第二阈值,则根据所统计的接入服务器的物联网设备的数量,减少数据分发交换容器的数量,第二阈值根据当前服务器中数据分发交换容器的数量确定。
举例来说,若当前服务器中数据分发交换容器的数量足以用于接收100个物联网设备所采集的数据,而此时接入服务器的物联网设备的数量仅仅只有50个,则会导致大量的数据分发交换容器的处于闲置状态,导致系统资源的浪费。因此,为了避免系统资源的浪费,提高资源利用率,本实施例在接入服务器的物联网设备的数量小于第二阈值,则根据所统计的接入服务器的物联网设备的数量,减少数据分发交换容器的数量。第二阈值的具体数值可以根据实际需要进行设置,本实施例对此不作限制。如此,通过及时减少数据分发交换容器的数量,避免了使数据分发交换容器处于空闲状态,造成资源浪费,提高了资源利用率,同时还可以释放更多的资源供有数据传输需求的物联网设备使用,进而提高了数据采集的速度。
在一些实施例中,在上述任一实施例的基础上,本实施例提供的方法还可以包括:统计数据分发交换容器的数量和传输数据容器的数量。
本实施例中服务器可以实时统计所启动的数据分发交换容器和传输数据容器的数量。
根据所统计的数据分发交换容器的数量和传输数据容器的数量,确定数据分发交换容器的数量。
可选的,根据所统计的数据分发交换容器的数量和传输数据容器的数量,确定数据分发交换容器的数量可以包括:
若传输数据容器的数量与数据分发交换容器的数量的比值大于第三阈值,则增加数据分发交换容器的数量。
传输数据容器的数量与数据分发交换容器的数量的比值可以用于表示每个数据分发交换容器平均需要连接的传输数据容器的数量。
通常情况下,每个数据分发交换容器所能够连接的传输数据容器的数量是一定的。如图2所示,其中每个数据分发交换容器用于接收3个传输数据容器采集的数据,若此时,传输数据容器的数量与数据分发交换容器的数量的比值为6,则表示每个数据分发交换容器平均需要连接6个传输数据容器,数据分发交换容器超负荷工作,无法保证采集数据的高效、准确的传输。因此,需要增加数据分发交换容器的数量,以缓解数据分发交换容器的压力。
在一些实施例中,在上述任一实施例的基础上,本实施例提供的方法还可以包括:
若与传输数据容器连接的物联网设备的数量降为第一预设数量时,则销毁该传输数据容器。
本实施例中,当物联网设备将所采集的数据传输完毕后,则会断开与服务器的连接,释放相应的资源以便其他设备可以使用,同时也能够降低物联网设备的功耗。
本实施例中的传输数据容器可以同时与多个物联网设备连接,用于接收物联网设备采集的数据。若与其连接的多个物联网设备均完成数据传输,处于离线状态时,则可以销毁该传输数据容器,释放相应的资源。
本实施例中的第一预设数量可以设为0,即当与传输数据容器连接的物联网设备的数量降为0时,可以销毁该传输数据容器。
若与数据分发交换容器连接的传输数据容器的数量降为第二预设数量时,则销毁该数据分发交换容器。
本实施例中的数据分发交换容器可以同时与多个传输数据容器连接,用于接收物传输数据容器采集的数据。若与其连接的多个传输数据容器均销毁后,则可以销毁该传输数据容器,释放相应的资源。本实施例中的第二预设数量可以设为0,即当与数据分发交换容器连接的传输数据容器的数量降为0时,可以销毁该数据分发交换容器。
本实施例提供的数据采集方法,通过在与传输数据容器连接的物联网设备的数量降为第一预设数量时,销毁该传输数据容器;在与数据分发交换容器连接的传输数据容器的数量降为第二预设数量时,销毁该数据分发交换容器。如此,通过及时销毁多余的传输数据容器和数据分发交换容器,释放了更多的资源,提高了资源利用率,进而可以提高服务器的响应速度,提高数据采集速度。
在一些实施例中,在上述任一实施例的基础上,在统计接入服务器的物联网设备的数量之前,本实施例提供的方法还可以包括:
接收物联网设备发送的接入请求消息,接入请求消息包括物联网设备的设备编码信息。
根据设备编码信息确定是否允许物联网设备接入服务器。
本实施例中服务器中可以预先存储有合法的物联网设备的相关信息。其中,合法的物联网设备可以包括已经合法注册的物联网设备,服务器已经授权的物联网设备等。相关信息可以包括物联网设备的设备编码信息、访问权限信息等。
本实施例的服务器在接收到物联网设备的接入请求消息时,获取其中所包含的设备编码信息,将其与预先存储的合法物联网设备的设备编码信息相比较,若匹配成功,则可以确定该物联网设备合法,可以接入服务器;若匹配失败,则可以确定该物联网设备非法,拒绝该物联网设备接入服务器。
本实施例提供的数据采集方法,通过在物联网设备接入服务器时,接收物联网设备发送的包括物联网设备的设备编码信息的接入请求消息,并根据接入请求消息中的设备编码信息确定是否允许物联网设备接入服务器。可以有效避免非法物联网设备的接入,进而有效避免了非法数据攻击,提高了数据采集的安全性。
本发明实施例还提供一种数据采集装置,请参见图3所示,本发明实施例仅以图3为例进行说明,并不表示本发明仅限于此。图3为本发明提供的数据采集装置一实施例的结构示意图。本实施例提供的数据采集装置可以是网络侧设备,例如服务器等,也可以是用于网络侧设备的部件,例如芯片、集成电路等。如图3所示,本实施例提供的数据采集装置30可以包括统计模块301和调整模块302。
统计模块301,用于统计接入服务器的物联网设备的数量。
调整模块302,用于根据所统计的接入服务器的物联网设备的数量,调整数据分发交换容器的数量,数据分发交换容器用于接收至少一个传输数据容器采集的数据,传输数据容器用于接收至少一个物联网设备采集的数据。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选的,调整模块302具体可以用于:
若所统计的接入服务器的物联网设备的数量大于第一阈值,则根据所统计的接入服务器的物联网设备的数量,增加数据分发交换容器的数量,第一阈值根据当前服务器中数据分发交换容器的数量确定。
可选的,调整模块302具体可以用于:
若所统计的接入服务器的物联网设备的数量小于第二阈值,则根据所统计的接入服务器的物联网设备的数量,减少数据分发交换容器的数量,第二阈值根据当前服务器中数据分发交换容器的数量确定。
可选的,统计模块301还可以用于统计数据分发交换容器的数量和传输数据容器的数量;调整模块302还可以用于,根据所统计的数据分发交换容器的数量和传输数据容器的数量,确定数据分发交换容器的数量。
可选的,调整模块302还可以具体用于:
若传输数据容器的数量与数据分发交换容器的数量的比值大于第三阈值,则增加数据分发交换容器的数量。
可选的,调整模块302还可以具体用于:
若与传输数据容器连接的物联网设备的数量降为第一预设数量时,则销毁该传输数据容器;
若与数据分发交换容器连接的传输数据容器的数量降为第二预设数量时,则销毁该数据分发交换容器。
可选的,数据采集装置30还可以包括接收模块和校验模块,其中接收模块用于在统计接入服务器的物联网设备的数量之前,接收物联网设备发送的接入请求消息,接入请求消息包括物联网设备的设备编码信息;校验模块,用于根据设备编码信息确定是否允许物联网设备接入服务器。
本发明实施例还提供一种服务器,请参见图4所示,本发明实施例仅以图4为例进行说明,并不表示本发明仅限于此。图4为本发明提供的服务器一实施例的结构示意图。如图4所示,本实施例提供的服务器40可以包括:存储器401、处理器402和总线403。其中,总线403用于实现各元件之间的连接。
存储器401中存储有计算机程序,计算机程序被处理器402执行时可以实现上述任一方法实施例提供的数据采集方法的技术方案。
其中,存储器401和处理器402之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线403连接。存储器401中存储有实现数据采集方法的计算机程序,包括至少一个可以软件或固件的形式存储于存储器401中的软件功能模块,处理器402通过运行存储在存储器401内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器401可以是,但不限于,随机存取存储器(randomaccessmemory,简称:ram),只读存储器(readonlymemory,简称:rom),可编程只读存储器(programmableread-onlymemory,简称:prom),可擦除只读存储器(erasableprogrammableread-onlymemory,简称:eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,简称:eeprom)等。其中,存储器401用于存储程序,处理器402在接收到执行指令后,执行程序。进一步地,上述存储器401内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器402可以是一种集成电路芯片,具有信号的处理能力。上述的处理器402可以是通用处理器,包括中央处理器(centralprocessingunit,简称:cpu)、网络处理器(networkprocessor,简称:np)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以理解,图4的结构仅为示意,还可以包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件和/或软件实现。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一方法实施例提供的数据采集方法。本实施例中的计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备,可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如ssd)等。
在上述的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(applicationspecificintegratedcircuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于终端或服务器中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。