一种数据采集方法、装置、电子设备及存储介质与流程
未命名
09-24
阅读:68
评论:0
1.本发明涉及计算机技术领域,尤其涉及一种数据采集方法、装置、电子设备及存储介质。
背景技术:
2.相关技术使用prometheus作为集群监控方案,prometheus针对每个集群部署一个exporter,通过exporter采集集群的数据。相关技术需要为每个集群分配exporter,无法充分利用exporter资源,而且无法同时实现所有exporter的负载均衡。
技术实现要素:
3.为了解决上述问题,本发明实施例提供了一种数据采集方法、装置、电子设备及存储介质,以至少解决相关技术测试效率较低的问题。
4.本发明的技术方案是这样实现的:
5.第一方面,本发明实施例提供了一种数据采集方法,该方法包括:
6.基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值;所述权值表征集群分配到该采集节点的概率;所述采集节点用于采集对应的集群的数据;
7.根据所述权值确定各个采集节点在哈希环上的采集范围;
8.根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。
9.在上述方案中,所述根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点,包括:
10.计算各个集群对应的哈希值,根据所述哈希值确定各个集群在所述哈希环上的位置;
11.将各个集群在所述哈希环上的位置分别与各个采集节点的采集范围进行匹配,根据匹配结果为各个集群分配采集节点。
12.在上述方案中,所述根据匹配结果为各个集群分配采集节点,包括:
13.若匹配结果表征集群在所述哈希环上的位置位于第一采集节点的采集范围,则将该集群分配给所述第一采集节点;所述第一采集节点为所述至少两个采集节点中的任意一个采集节点;所述第一采集节点用于采集该集群的数据。
14.在上述方案中,所述根据所述权值确定各个采集节点在哈希环上的采集范围,包括:
15.根据所述权值确定对应的采集节点在哈希环上的弧线的长度;所述弧线表征对应的采集节点在所述哈希环上的采集范围;其中,所述至少两个采集节点中的所有采集节点的权值之和等于1。
16.在上述方案中,所述方法还包括:
17.在监控到第二采集节点的负载值大于设定值的情况下,创建第三采集节点;所述
第二采集节点为所述至少两个采集节点中的任意一个采集节点;
18.计算所述至少两个采集节点和所述第三采集节点的权值;
19.根据所述权值确定所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围;
20.根据所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围,为所述至少一个集群重新分配采集节点。
21.在上述方案中,在根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点之后,所述方法还包括:
22.根据第四采集节点的硬件配置信息和被分配的集群总数量,确定所述第四采集节点每次分批采集的集群数量;所述第四采集节点对被分配的集群总数量进行分批采集;所述第四采集节点为所述至少两个采集节点中的任意一个采集节点。
23.在上述方案中,所述硬件配置信息包括:采集节点的处理器核数和内存容量;
24.对应地,所述基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值,包括:
25.基于各个采集节点的处理器核数和内存容量,分别计算各个采集节点的权值。
26.第二方面,本发明实施例提供了一种数据采集装置,该装置包括:
27.计算模块,用于基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值;所述权值表征集群分配到该采集节点的概率;所述采集节点用于采集对应的集群的数据;
28.确定模块,用于根据所述权值确定各个采集节点在哈希环上的采集范围;
29.分配模块,用于根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。
30.第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本发明实施例第一方面提供的数据采集方法的步骤。
31.第四方面,本发明实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序。所述计算机程序被处理器执行时实现如本发明实施例第一方面提供的数据采集方法的步骤。
32.本实施例基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值,根据权值确定各个采集节点在哈希环上的采集范围,根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。其中,权值表征集群分配到采集节点的概率,采集节点用于采集对应的集群的数据。本技术通过采集节点的权值确定采集节点在哈希环上的采集范围,根据采集范围为集群分配采集节点,可以实现对采集节点进行动态负荷调整,实现整体所有采集节点的负载均衡。本技术能够充分利用采集节点的资源,根据权值灵活调整每个采集节点的负载,不会出现单个采集节点因负载过高而导致宕机的情况。
附图说明
33.图1是本发明实施例提供的一种数据采集系统的结构示意图;
34.图2是本发明实施例提供的另一种数据采集系统的结构示意图;
35.图3是本发明实施例提供的另一种数据采集系统的结构示意图;
36.图4是本发明实施例提供的一种数据采集方法的实现流程示意图;
37.图5是本发明实施例提供的另一种数据采集方法的实现流程示意图;
38.图6是本发明实施例提供的另一种数据采集方法的实现流程示意图;
39.图7是本发明实施例提供的另一种数据采集系统的结构示意图;
40.图8是本发明实施例提供的一种集群结构示意图;
41.图9是本发明实施例提供的一种数据采集装置的示意图;
42.图10是本发明一实施例提供的电子设备的示意图。
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.prometheus是一个开源监控系统,相关技术使用prometheus作为集群数据采集和监控方案,prometheus通过在集群中安装了一个exporter程序,该程序对外暴露了一个用于获取当前监控样本数据的http访问地址。这样的一个程序称为exporter,exporter的实例称为一个target。广义上讲,所有可以向prometheus提供监控数据的程序都可以被称为一个exporter。prometheus通过轮询的方式定时从这些target中获取监控数据,并且存储在数据库当中。
45.伴随着移动云产品用户指数级增长,上述传统数据采集和监控方案存在以下问题:
46.1、相关技术需要为每个集群配备一个exporter来采集数据,exporter资源部署成本高,并且exporter对集群的侵入性大,结构较重,exporter不易更新,不符合微服务理念。
47.2、单个exporter采集单个集群的方案,无法充分利用exporter资源,造成资源浪费。而且难以管控每个exporter的负载,无法实现所有exporter的负载均衡,单个exporter容易出现因负载过高而导致宕机的情况。
48.3、监控规则僵化,灵活度差,采集模式和采集数据类型无法根据需求灵活调整,无法适应移动云多变的市场需求。
49.针对上述相关技术的缺点,本发明实施例提供了一种数据采集方法,能够提高资源利用率,实现自动负载均衡。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
50.图1是本发明实施例提供的一种数据采集系统的结构示意图,该数据采集系统包括:服务发现组件、统一数据采集组件、etcd数据库和被采集的服务集群。
51.其中,被采集的服务集群包括多个redis集群,这里redis集群只是一种示例,其他类型的集群也可以是被采集的服务集群。统一数据采集组件包括多个采集服务副本,采集
服务用于采集redis集群中的数据,然后将采集到的数据注入到etcd数据库中。
52.如图2所示,新建的采集服务和新建的redis集群会向etcd进行注册,采集服务会不断watch etcd中的监控列表,根据监控列表对redis集群采集数据。其中,一个采集服务在etcd中对应一个监控列表。
53.如图3所示,服务发现组件不断watch etcd中的redis列表和采集服务列表,实时发现新的redis集群或者采集服务。服务发现组件会根据采集服务的负载情况,自动进行负载均衡,自动调整每个采集服务对应的监控列表中的redis集群,具体参考以下实施例。
54.图4是本发明实施例提供的一种数据采集方法的实现流程示意图,所述数据采集方法的执行主体为电子设备,电子设备包括台式电脑、笔记本电脑和服务器等。在图1实施例中,该数据采集方法的执行主体为图1中的服务发现组件。参考图4,数据采集方法包括:
55.s401,基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值;所述权值表征集群分配到该采集节点的概率;所述采集节点用于采集对应的集群的数据。
56.这里,采集节点对应上述实施例中的采集服务,采集节点可以是一个虚拟节点,比如采集节点可以是k8s(kubernetes)集群中的一个pod。采集节点用于采集集群的数据,比如可以是redis集群的数据,并且一个采集节点可以同时采集若干个redis集群的数据。
57.在本实施例中,集群为每个采集节点都分配了硬件资源,采集节点的硬件配置信息可以包括:采集节点的处理器核数和内存容量。采集节点分配的硬件资源越多(比如内存容量更大、处理器核心数量更多),则该采集节点能够采集的集群数量也就越多。
58.在本实施例中,权值表征集群分配到采集节点的概率,表示由该采集节点采集集群的数据的概率。在集群被分配采集节点时,采集节点的权值越大,该采集节点被分配到集群的可能性就越大。在整个集群分配结束后,该采集节点分配到的集群也就越多。
59.基于每个采集节点的硬件配置信息计算各个采集节点的权值,在硬件配置信息为采集节点的处理器核数和内存容量时,对应地,所述基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值,包括:
60.基于各个采集节点的处理器核数和内存容量,分别计算各个采集节点的权值。
61.例如,假设有一组采集节点bi,其中i={1,2,...n},每个采集节点的cpu核数为ci,memory内存容量为mi,则根据以下公式可以计算得到每个采集节点的权值wi。
[0062][0063][0064][0065]
其中,ε是一个无限小的正数,比如ε可以设置为10-6
。
[0066]
当然,硬件配置信息还可以包括更多的信息,比如还可以包括硬盘容量,这里选择处理器核数和内存容量仅是一种示例。
[0067]
s402,根据所述权值确定各个采集节点在哈希环上的采集范围。
[0068]
一致性哈希算法是普通哈希算法的改良版,哈希函数计算方法保持不变,只不过
是通过构建环状的hash空间代替普通哈希算法的线性hash空间。传统的一致性哈希算法通过对采集节点的网际互连协议(ip,internet protocol)地址或者主机名求哈希值,然后根据哈希值确定采集节点在哈希环上的位置。传统方法中采集节点在哈希环上的位置是固定的,采集节点的采集范围等于哈希环中该采集节点到上一个采集节点之间的弧线长度,相关技术如果新增采集节点,只能插在两个采集节点之间,会导致原有采集节点(哈希环中新增采集节点的下一个采集节点)的负载受到影响,而其他采集节点的负载不会变化。传统方法对各个采集节点的负载调整较为困难,无法整体调整所有采集节点的负载,也无法根据采集节点的资源大小进行动态负载调整。
[0069]
一致性哈希将整个哈希值空间组成一个虚拟的圆环,也就是哈希环。本实施例根据权值确定各个采集节点在哈希环上的采集范围,首先构建出一个哈希环,例如,假定有这样一个哈希函数,其哈希值空间为(0到2
32-1)。也就是说,其hash值是个32位无整型数字,虚拟一个环的概念,在环上构造一个0~2
32-1的哈希值空间。
[0070]
本实施例通过权值确定各个采集节点在哈希环上的采集范围,上述实施例计算得到的权值是一个小于1的百分数,所有采集节点的权值之和等于1,按照权值大小对将哈希环进行划分,每一个采集节点所占哈希环的比例等于权值大小。
[0071]
在一实施例中,所述根据所述权值确定各个采集节点在哈希环上的采集范围,包括:
[0072]
根据所述权值确定对应的采集节点在哈希环上的弧线的长度;所述弧线表征对应的采集节点在所述哈希环上的采集范围;其中,所述至少两个采集节点中的所有采集节点的权值之和等于1。
[0073]
哈希环是一个圆弧,哈希值都落在圆弧上。对哈希环按照各个采集节点的权值大小进行划分,每个采集节点对应哈希环上的一段弧线,弧线的长度占哈希环的周长的比例等于权值大小,所有采集节点对应的弧线的长之和等于哈希环的周长。
[0074]
弧线就是采集节点的采集范围,权值越大,采集节点的弧线就越长,采集范围也就越大。这样当集群通过哈希环确定采集节点时,弧线越长的采集节点被分配到集群的概率就越大。
[0075]
s403,根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。
[0076]
由于哈希环对应一个哈希值空间,每一个哈希值都对应哈希环上的一个点,通过哈希函数对至少一个集群进行哈希计算,计算得到每个集群对应的哈希值,然后通过哈希值将集群映射到哈希环上。集群映射在哈希环上哪个采集节点的采集范围中,就由该采集节点负责对该集群进行数据采集。
[0077]
由于权值能够表示采集节点的资源大小,如果出现采集节点的数量调整,或者集群的数量调整,本技术可以实时根据权值对采集节点进行动态负荷调整,实现负载均衡。
[0078]
参考图5,在一实施例中,所述根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点,包括:
[0079]
s501,计算各个集群对应的哈希值,根据所述哈希值确定各个集群在所述哈希环上的位置。
[0080]
通过预设的哈希算法计算每个集群对应的哈希值,然后通过哈希值将集群映射到
哈希环上。
[0081]
其中,使用的哈希函数由开发人员根据实际环境进行设定,比如,哈希算法可以是消息摘要算法(md5 message-digestalgorithm)、循环冗余校验(crc,cyclic redundancy check)、murmurhash等算法。
[0082]
s502,将各个集群在所述哈希环上的位置分别与各个采集节点的采集范围进行匹配,根据匹配结果为各个集群分配采集节点。
[0083]
若匹配结果表征集群在所述哈希环上的位置位于第一采集节点的采集范围,则将该集群分配给所述第一采集节点;所述第一采集节点为所述至少两个采集节点中的任意一个采集节点;所述第一采集节点用于采集该集群的数据。
[0084]
集群映射在哈希环上哪个采集节点的采集范围中,就由该采集节点负责对该集群进行数据采集,将该集群写入到采集节点对应的监控列表中。
[0085]
例如,有100个redis集群待分配采集节点,一共有5个采集节点(a、b、c、d、e),这5个采集节点的权值分别为10%、20%、30%、15%和25%。则在对100个redis集群进行分配时,采集节点a有可能分到10个redis集群,采集节点b有可能分到20个redis集群,采集节点c有可能分到30个redis集群,采集节点d有可能分到15个redis集群,采集节点e有可能分到25个redis集群。具体哪个redis集群分配到哪个采集节点,由哈希函数和哈希环决定。
[0086]
本实施例基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值,根据权值确定各个采集节点在哈希环上的采集范围,根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。其中,权值表征集群分配到采集节点的概率,采集节点用于采集对应的集群的数据。本技术通过采集节点的权值确定采集节点在哈希环上的采集范围,根据采集范围为集群分配采集节点,可以实现对采集节点进行动态负荷调整,实现整体所有采集节点的负载均衡。本技术能够充分利用采集节点的资源,根据权值灵活调整每个采集节点的负载,不会出现单个采集节点因负载过高而导致宕机的情况。
[0087]
参考图6,在一实施例中,所述方法还包括:
[0088]
s601,在监控到第二采集节点的负载值大于设定值的情况下,创建第三采集节点;所述第二采集节点为所述至少两个采集节点中的任意一个采集节点。
[0089]
这里,可以使用第二采集节点的处理器使用量和内存使用量作为负载值,例如,设定值为0.9,当第二采集节点的处理器使用量达到90%时,确定第二采集节点的负载值大于设定值,说明第二采集节点的负载过高。
[0090]
在第二采集节点的负载过高的情况下,创建新的采集节点,这里新建的采集节点命名为第三采集节点。
[0091]
s602,计算所述至少两个采集节点和所述第三采集节点的权值。
[0092]
s603,根据所述权值确定所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围。
[0093]
s604,根据所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围,为所述至少一个集群重新分配采集节点。
[0094]
新建第三采集节点后,重新计算当前所有采集节点的权值,重新根据权值确定各个采集节点在哈希环上的采集范围,然后重新根据采集范围为当前所有集群分配采集节
点。
[0095]
之所以要重新分配采集节点,是因为原来的采集节点已经达到负载极限了,新建的采集节点是为了分担原有采集节点的压力。例如,在第二采集节点的负载达到阈值之前,一共通过5个采集节点来采集100个集群的数据。在第二采集节点的负载达到阈值之后,新建了一个采集节点,现在通过6个采集节点来采集100个集群的数据,这样原来5个采集节点的负载都会减小,从而避免因为负载过高而宕机。
[0096]
之所以要将原有的所有采集节点对应的集群全部重新分配采集节点,而不是只将第二采集节点对应的集群分配给第三采集节点,是因为集群在分配采集节点时是根据哈希函数均匀分布在哈希环上的,如果一个采集节点出现负载过高的情况,那其他采集节点的负载也同时比较高了。所以在新建采集节点后,将原来的所有采集节点对应的集群全部重新分配采集节点,这样可以降低整体采集节点的负载,而不是只改善某一个节点的负载,实现全体采集节点的负载均衡。
[0097]
本技术对于新创建的集群能够自动发现,通过计算哈希值映射到哈希环上,使集群自动加入采集服务对应的被监控列表中。本技术能够实现自动负载均衡和采集节点伸缩,在采集节点负载过高的情况下自动扩展新的采集节点,并重新负载均衡。在另一方面,采集节点负载过小的情况下,也可以缩减采集节点的数量,做到资源充分利用。
[0098]
在实际应用中,集群部署环境可以为k8s,基于k8s的watch技术能够自动发现新创建的集群,将集群自动加入到被监控列表进行监控;自动发现新加入的采集服务,将采集服务加入到采集服务列表。
[0099]
在一实施例中,在第五采集节点的负载值小于阈值的情况下,删除所述至少两个采集节点中的至少一个采集节点。可以根据第五采集节点的负载值所在的范围,确定需要删除的采集节点的数量。
[0100]
例如,阈值设为0.3,如果第五采集节点的负载值小于30%,则删除一个采集节点。如果第五采集节点的负载值小于20%,则删除2个采集节点。如果第五采集节点的负载值小于10%,则删除3个采集节点。
[0101]
在一实施例中,在根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点之后,所述方法还包括:
[0102]
根据第四采集节点的硬件配置信息和被分配的集群总数量,确定所述第四采集节点每次分批采集的集群数量;所述第四采集节点对被分配的集群总数量进行分批采集;所述第四采集节点为所述至少两个采集节点中的任意一个采集节点。
[0103]
每个采集节点都对应一个监控列表,监控列表中记录了该采集节点需要采集的集群信息。例如,第四采集节点被分配的集群总数量为100,如果第四采集节点同时对100个集群进行数据采集,第四采集节点的负载会非常高,可能会宕机。所以对100个集群进行分批采集,比如设置分批采集次数为5,每次分批采集的集群数量为20个。则第四采集节点每次采集20个集群的数据,依次采集完100个集群的数据。应理解,第四采集节点每一轮采集的集群是没有重复的。
[0104]
本实施例可以根据第四采集节点的硬件配置信息和被分配的集群总数量,确定第四采集节点每次分批采集的集群数量。例如,假设设定采集时间间隔为t,单位为秒;第四采集节点的处理器核数为c,单位为core;第四采集节点的内存为m,单位为g。第四采集节点被
分配采集的集群总数为s,单位为个。则可以通过下面公式计算出在时间间隔t内,第四采集节点的分批采集次数t
mean
以及每次分批采集的集群数s
mean
。
[0105][0106]
如果被分配采集的集群总数s太少导致smean小于1,则smean=1。
[0107][0108]
本实施例通过对监控列表中的集群进行分批采集,可以避免大批量数据同时采集造成延时和瞬时负载过高的情况。
[0109]
在图1中,当服务发现组件watch到etcd的信息的发生变化时,通过本技术改进的一致性哈希环,将被采集的服务集群分配到对应的采集服务进行数据采集。如图7所示,当服务发现组件发现redis列表改变时,redis列表改变说明有新的redis集群加入,服务发现组件通过一致性哈希算法计算新的redis集群的哈希值,将其映射到哈希环上,从而为其分配监控节点,监控节点指采集服务,然后更新该采集服务正在监控的redis列表。
[0110]
当服务发现组件发现监控列表改变时,监控列表改变说明新增或减少了采集服务,通过一致性哈希算法对所有采集服务的负载进行调整,实现负载均衡。本技术可以通过处理器和内存自动计算权值表示采集节点的处理性能,使得采集节点能够计算得到最佳的调度数量。
[0111]
在一实施例中,可以通过以下公式计算得到每个采集节点的虚拟节点数,虚拟节点数指采集节点能够采集的集群的最大数量。
[0112]
x=n
×
虚拟节点倍数
[0113][0114]
其中,x是一致性哈希环的虚拟节点总数,c为总处理器核数,m为总内存容量,n为采集节点的总数。
[0115]
在相关技术中,虚拟节点倍数往往根据经验预设,无法根据环境的变化灵活改变,本技术可以根据采集节点的硬件配置信息计算虚拟节点倍数。
[0116]
在通过上述实施例计算得到每个采集节点的权值后,可以根据权值和虚拟节点总数计算得到每个采集节点的虚拟节点数ni。
[0117]
ni=m
×
wi[0118]
虚拟节点数表示采集节点能够采集的集群的最大数量,根据每个采集节点的虚拟节点数,可以用来判断当前采集节点的负载,例如,采集节点当前正在采集的集群数接近于虚拟节点数时,可以确定采集节点的负载过高。
[0119]
参考图8,图8是本发明实施例提供的一种集群结构示意图。由图8可以看出,采集服务和reids集群相互独立,实现集群和采集服务的完全解耦,两者增加或者减少,对相互不会产生影响,可以做到多对多的关系,即多个采集服务对应多个reids集群。
[0120]
在实际应用中,集群提供开放的代码函数以及配置文件,例如,service.getsingleinstanc einfo(value)是集群提供的一个开发函数,发人员可以通过该开发函数根据不同产品的访问协议自定义具体的采集方式,同时使用go轻量级协程进行采集,最大程度上利用资源。不同产品可以根据修改代码函数进行产品的替换,同时根据需
要随时修改配置文件灵活修改监控项和内容。
[0121]
有别于传统数据采集方式需要每个集群分配一个exporter,本技术设计了一种面向大规模集群的数据采集方式,能做到集群和采集服务的动态发现,采集服务与集群做到充分解耦,更加轻便灵活。并且实现了采集节点的自动负载均衡及采集节点自动横向伸缩,无需人工介入,同时通过对监控列表的集群服务进行分批采集,避免大批量数据同时采集造成延时和瞬时负载过高的情况,实现采集性能最佳的同时,资源充分利用。并且提供了开放的代码函数和配置文件,能够更方便地进行监控扩展和产品适应。
[0122]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0123]
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0124]
需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0125]
另外,在本发明实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0126]
参考图9,图9是本发明实施例提供的一种数据采集装置的示意图,如图9所示,该装置包括:
[0127]
计算模块,用于基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值;所述权值表征集群分配到该采集节点的概率;所述采集节点用于采集对应的集群的数据;
[0128]
确定模块,用于根据所述权值确定各个采集节点在哈希环上的采集范围;
[0129]
分配模块,用于根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。
[0130]
在一实施例中,所述分配模块根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点,包括:
[0131]
计算各个集群对应的哈希值,根据所述哈希值确定各个集群在所述哈希环上的位置;
[0132]
将各个集群在所述哈希环上的位置分别与各个采集节点的采集范围进行匹配,根据匹配结果为各个集群分配采集节点。
[0133]
在一实施例中,所述分配模块根据匹配结果为各个集群分配采集节点,包括:
[0134]
若匹配结果表征集群在所述哈希环上的位置位于第一采集节点的采集范围,则将该集群分配给所述第一采集节点;所述第一采集节点为所述至少两个采集节点中的任意一个采集节点;所述第一采集节点用于采集该集群的数据。
[0135]
在一实施例中,所述确定模块根据所述权值确定各个采集节点在哈希环上的采集范围,包括:
[0136]
根据所述权值确定对应的采集节点在哈希环上的弧线的长度;所述弧线表征对应的采集节点在所述哈希环上的采集范围;其中,所述至少两个采集节点中的所有采集节点
的权值之和等于1。
[0137]
在一实施例中,所述装置还包括:
[0138]
创建模块,用于在监控到第二采集节点的负载值大于设定值的情况下,创建第三采集节点;所述第二采集节点为所述至少两个采集节点中的任意一个采集节点;
[0139]
权值计算模块,用于计算所述至少两个采集节点和所述第三采集节点的权值;
[0140]
根据所述权值确定所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围;
[0141]
所述分配模块用于根据所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围,为所述至少一个集群重新分配采集节点。
[0142]
在一实施例中,所述装置还包括:
[0143]
分批采集模块,用于根据第四采集节点的硬件配置信息和被分配的集群总数量,确定所述第四采集节点每次分批采集的集群数量;所述第四采集节点对被分配的集群总数量进行分批采集;所述第四采集节点为所述至少两个采集节点中的任意一个采集节点。
[0144]
在一实施例中,所述硬件配置信息包括:采集节点的处理器核数和内存容量;
[0145]
对应地,所述计算模块基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值,包括:
[0146]
基于各个采集节点的处理器核数和内存容量,分别计算各个采集节点的权值。
[0147]
实际应用时,所述计算模块、分配模块和确定模块可通过电子设备中的处理器,比如中央处理器(cpu,central processingunit)、数字信号处理器(dsp,digital signal processor)、微控制单元(mcu,microcontroller unit)或可编程门阵列(fpga,field-programmable gate array)等实现。
[0148]
需要说明的是:上述实施例提供的数据采集装置在进行测试时,仅以上述各模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的模块完成,即将装置的内部结构划分成不同的模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据采集装置与数据采集方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0149]
上述数据采集装置可以是镜像文件形式,该镜像文件被执行后,可以以容器或者虚拟机的形式运行,以实现本技术所述的数据采集方法。当然也不局限为镜像文件形式,只要能够实现本技术所述的数据采集方法的一些软件形式都在本技术的保护范围之内,比如还可以为云计算平台中hypervisor(虚拟机监控器)中所实现的软件模块。
[0150]
基于上述程序模块的硬件实现,且为了实现本技术实施例的方法,本技术实施例还提供了一种电子设备,上述数据采集方法由电子设备的处理器实现。图10为本技术实施例电子设备的硬件组成结构示意图,如图10所示,电子设备包括:
[0151]
通信接口,能够与其它设备比如网络设备等进行信息交互;
[0152]
处理器,与所述通信接口连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述电子设备侧一个或多个技术方案提供的方法。而所述计算机程序存储在存储器上。
[0153]
当然,实际应用时,电子设备中的各个组件通过总线系统耦合在一起。可理解,总线系统用于实现这些组件之间的连接通信。总线系统除包括数据总线之外,还包括电源总
线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统。
[0154]
在本技术中,电子设备可以是单个硬件设备,也可以是多个硬件设备组成的集群,比如云计算平台。所谓云计算平台是把多个独立的服务器物理硬件资源组织成池化资源的一种集群设备,它对外提供所需要的虚拟资源和服务。
[0155]
本技术实施例中的存储器用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
[0156]
可以理解,存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccess memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static randomaccess memory)、同步静态随机存取存储器(ssram,synchronous static randomaccess memory)、动态随机存取存储器(dram,dynamic randomaccess memory)、同步动态随机存取存储器(sdram,synchronous dynamic randomaccess memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic randomaccess memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic randomaccess memory)、同步连接动态随机存取存储器(sldram,synclinkdynamic randomaccess memory)、直接内存总线随机存取存储器(drram,direct rambus randomaccess memory)。本技术实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0157]
本发明实施例还提供了一种云计算平台,包括用于数据采集方法的数据处理软件模块,所述数据处理软件模块用于实现如本发明实施例提供的数据采集方法的步骤。
[0158]
云计算平台是采用计算虚拟化、网络虚拟化、存储虚拟化技术把多个独立的服务器物理硬件资源组织成池化资源的一种业务形态,它是一种基于虚拟化技术发展基础上软件定义资源的结构,可以提供虚拟机、容器等形态的资源能力。通过消除硬件与操作系统之间的固定关系,依赖网络的连通统一资源调度,然后提供所需要的虚拟资源和服务,是一种新型的it,软件交付模式,具备灵活,弹性,分布式,多租户,按需等特点。
[0159]
目前的云计算平台支持几种服务模式:
[0160]
saas(software as a service,软件即服务):云计算平台用户无需购买软件,而改为租用部署于云计算平台的软件,用户无需对软件进行维护,软件服务提供商会全权管理和维护软件;
[0161]
paas(platform as a service,平台即服务):云计算平台用户(此时通常为软件开发商)可以在云计算平台提供的架构上建设新的应用,或者扩展已有的应用,同时却不必购买开发、质量控制或生产服务器;
[0162]
iaas(infrastructure as a service,基础架构即服务):云计算平台通过互联网提供了数据中心、基础架构硬件和软件资源,iaas模式下的云计算平台可以提供服务器、操作系统、磁盘存储、数据库和/或信息资源。
[0163]
上述本技术实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的程序,结合其硬件完成前述方法的步骤。
[0164]
可选地,所述处理器执行所述程序时实现本技术实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
[0165]
在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器,上述计算机程序可由电子设备的处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd-rom等存储器。
[0166]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置、电子设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0167]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0168]
另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0169]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0170]
或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。
而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0171]
需要说明的是,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0172]
另外,在本技术实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0173]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种数据采集方法,其特征在于,所述方法包括:基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值;所述权值表征集群分配到该采集节点的概率;所述采集节点用于采集对应的集群的数据;根据所述权值确定各个采集节点在哈希环上的采集范围;根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。2.根据权利要求1所述的方法,其特征在于,所述根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点,包括:计算各个集群对应的哈希值,根据所述哈希值确定各个集群在所述哈希环上的位置;将各个集群在所述哈希环上的位置分别与各个采集节点的采集范围进行匹配,根据匹配结果为各个集群分配采集节点。3.根据权利要求2所述的方法,其特征在于,所述根据匹配结果为各个集群分配采集节点,包括:若匹配结果表征集群在所述哈希环上的位置位于第一采集节点的采集范围,则将该集群分配给所述第一采集节点;所述第一采集节点为所述至少两个采集节点中的任意一个采集节点;所述第一采集节点用于采集该集群的数据。4.根据权利要求1所述的方法,其特征在于,所述根据所述权值确定各个采集节点在哈希环上的采集范围,包括:根据所述权值确定对应的采集节点在哈希环上的弧线的长度;所述弧线表征对应的采集节点在所述哈希环上的采集范围;其中,所述至少两个采集节点中的所有采集节点的权值之和等于1。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在监控到第二采集节点的负载值大于设定值的情况下,创建第三采集节点;所述第二采集节点为所述至少两个采集节点中的任意一个采集节点;计算所述至少两个采集节点和所述第三采集节点的权值;根据所述权值确定所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围;根据所述至少两个采集节点和所述第三采集节点在所述哈希环上的采集范围,为所述至少一个集群重新分配采集节点。6.根据权利要求1所述的方法,其特征在于,在根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点之后,所述方法还包括:根据第四采集节点的硬件配置信息和被分配的集群总数量,确定所述第四采集节点每次分批采集的集群数量;所述第四采集节点对被分配的集群总数量进行分批采集;所述第四采集节点为所述至少两个采集节点中的任意一个采集节点。7.根据权利要求1所述的方法,其特征在于,所述硬件配置信息包括:采集节点的处理器核数和内存容量;对应地,所述基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值,包括:基于各个采集节点的处理器核数和内存容量,分别计算各个采集节点的权值。8.一种数据采集装置,其特征在于,包括:
计算模块,用于基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值;所述权值表征集群分配到该采集节点的概率;所述采集节点用于采集对应的集群的数据;确定模块,用于根据所述权值确定各个采集节点在哈希环上的采集范围;分配模块,用于根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的数据采集方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至7任一项所述的数据采集方法。
技术总结
本发明实施例适用于计算机技术领域,提供了一种数据采集方法、装置、电子设备及存储介质,其中,数据采集方法包括:基于至少两个采集节点中的每个采集节点的硬件配置信息计算各个采集节点的权值;权值表征集群分配到该采集节点的概率;采集节点用于采集对应的集群的数据;根据权值确定各个采集节点在哈希环上的采集范围;根据各个采集节点在所述哈希环上的采集范围,为至少一个集群分配采集节点。为至少一个集群分配采集节点。为至少一个集群分配采集节点。
技术研发人员:黄刚 陈学平 范亚琼
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.08.17
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/