CN117675847A - 数据采集方法、装置以及计算机可读存储介质 - Google Patents
数据采集方法、装置以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117675847A CN117675847A CN202211020430.0A CN202211020430A CN117675847A CN 117675847 A CN117675847 A CN 117675847A CN 202211020430 A CN202211020430 A CN 202211020430A CN 117675847 A CN117675847 A CN 117675847A
- Authority
- CN
- China
- Prior art keywords
- server
- task
- data acquisition
- target
- subordinate
- 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
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 230000002159 abnormal effect Effects 0.000 claims description 38
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000013480 data collection Methods 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 11
- 230000005856 abnormality Effects 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 54
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000001419 dependent effect Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 128
- 230000000694 effects Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012384 transportation and delivery Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013523 data management Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据采集方法、装置以及计算机可读存储介质,可应用于云技术等场景。具体的,获取待处理的数据采集任务;读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;检测每一服务器标识对应的从属服务器的运行状态;计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。以此,可实现通分布式的目标从属服务进行数据采集,可使得数据采集进程不受限于运行资源的影响,保障数据采集过程中的性能,避免数据采集过程中系统奔溃的现象,提高数据采集效率和用户体验。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据采集方法、装置以及计算机可读存储介质。
背景技术
随着物联网(Internet of Things,简称IoT)技术的发展,可对采集设备进行的网络接入,以便对现实物体进行智能化感知、识别和管理。为了对现实物体进行感知和管理,可通过对现实物体的数据进行采集,以便后续根据收集到的物品数据对相应的现实物体进行识别和管理。
相关技术在采集数据时,主要是通过相关的数据管理服务器与该采集设备进行连接,如将数据管理服务器与待管理的采集设备进行网络连接,并接收该待管理的采集设备的各类数据,以便根据采集的数据对现实物体进行识别和管理。
在对现有技术的研究和实践过程中,本申请的发明人发现现有技术在采集数据时,数据管理服务器的运行资源有限,如运算资源、内存资源和存储资源等有限,而该有限的运行资源会限制数据采集过程的性能,在面对海量的数据时,容易造成数据管理服务器的资源紧张,容易导致数据采集过程中系统奔溃现象,因而,影响了数据采集效率,且不具有可靠性,增加相关人员的工作量,影响用户体验。
发明内容
本申请实施例提供一种数据采集方法、装置以及计算机可读存储介质,可保障数据采集过程中的性能,避免数据管理设备系统奔溃的现象,提高数据采集效率和用户体验。
本申请实施例提供一种数据采集方法,包括:
获取待处理的数据采集任务;
读取从属服务器列表,所述从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;
检测所述从属服务器列表中每一服务器标识对应的从属服务器的运行状态;
计算所述数据采集任务的目标哈希值,并根据所述目标哈希值和所述运行状态从所述从属服务器列表中选取待分配任务的目标服务器标识;
将所述数据采集任务分配至所述目标服务器标识对应的目标从属服务器进行数据采集。
相应的,本申请实施例提供一种数据采集装置,包括:
获取单元,用于获取待处理的数据采集任务;
读取单元,用于读取从属服务器列表,所述从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;
检测单元,用于检测所述从属服务器列表中每一服务器标识对应的从属服务器的运行状态;
选取单元,用于计算所述数据采集任务的目标哈希值,并根据所述目标哈希值和所述运行状态从所述从属服务器列表中选取待分配任务的目标服务器标识;
采集单元,用于将所述数据采集任务分配至所述目标服务器标识对应的目标从属服务器进行数据采集。
在一些实施方式中,所述运行状态包含可分配任务状态和不可分配任务状态,所述检测单元,还用于:
获取每一服务器标识对应的从属服务器的运行资源信息;
读取所述运行资源信息中的资源占用率;
若检测到所述资源占用率小于预设资源占用阈值,则将对应的从属服务器的运行状态确定为可分配任务状态;
若检测到所述资源占用率大于或等于预设资源占用阈值,则将对应的从属服务器的运行状态确定为不可分配任务状态。
在一些实施方式中,所述选取单元,还用于:
基于所述从属服务器列表,筛选出所述运行状态为可分配任务状态的待选服务器标识;
确定所述待选服务器标识的待选标识数量;
根据所述目标哈希值与所述待选标识数量,确定待分配任务的目标服务器标识。
在一些实施方式中,所述选取单元,还用于:
对所述目标哈希值与所述待选标识数量之间进行整除计算,并确定整除计算后的哈希值余数;
对所述待选服务器标识进行排序,得到待选服务器标识序列;
按照所述哈希值余数,从所述待选服务器标识序列中选取对应排序位置的目标服务器标识。
在一些实施方式中,所述数据采集装置还包括识别单元,还用于:
若检测到所述待选标识数量大于或等于预设待选数量阈值,则识别每一待选服务器标识对应的资源占用率;
将多个所述资源占用率之间进行大小比对;
则所述选取单元,还用于若检测到多个所述资源占用率之间大小相等,则根据所述目标哈希值与所述待选标识数量,确定待分配任务的目标服务器标识。
在一些实施方式中,所述选取单元,还用于:
若检测到多个所述资源占用率之间大小不相等,则将所述资源占用率最小的服务器标识作为待分配任务的目标服务器标识。
在一些实施方式中,所述数据采集装置还包括任务调度单元,还用于:
获取所述目标从属服务器在执行所述数据采集任务时历史时段的资源平均占用率;
当识别到所述资源平均占用率大于预设资源平均阈值时,则停止通过所述目标从属服务器执行所述数据采集任务,并从所述从属服务器列表中重新选取可分配任务的第二服务器标识;
将所述数据采集任务发送至所述第二服务器标识对应的从属服务器进行数据采集。
在一些实施方式中,所述任务调度单元,还用于:
将所述从属服务器列表中除所述目标服务器标识外的每一服务器标识确定为待确认的服务器标识,并确定所述待确认的服务器标识对应的第二待选标识数量;
计算所述目标哈希值与所述第二待选标识数量之间的第一哈希值余数,并根据所述第一哈希值余数从多个所述待确认的服务器标识中待确认的第一服务器标识;
若检测到所述第一服务器标识对应的从属服务器的资源占用率大于预设资源占用阈值,则拦截向所述第一服务器标识对应的从属服务器发送所述数据采集任务,并对所述目标哈希值进行二次哈希计算,得到第二哈希值;
根据所述第二哈希值与所述第二待选标识数量之间的第二哈希值余数,从所述从属服务器列表中重新选取可分配任务的第二服务器标识。
在一些实施方式中,所述任务调度单元,还用于:
确定所述从属服务器列表中每一服务器标识对应的从属服务器的资源占用率;
若检测到每一资源占用率大于预设资源占用阈值,则根据所述预设资源占用阈值确定从属服务器的资源可用数量,并根据所述资源可用数量创建与管理服务器长连接的新增从属服务器;
将所述资源占用率大于预设资源占用阈值的从属服务器中的数据采集任务调度至所述新增从属服务器进行数据采集。
在一些实施方式中,所述任务调度单元,还用于:
检测所述目标从属服务器与所述管理服务器之间的连接状态;
获取所述目标从属服务器的数据采集进度,并根据所述数据采集进度确定任务状态;
当检测到所述连接状态为连接异常且所述任务状态为未完成时,从所述从属服务器列表中重新选取可分配任务的目标服务器标识,并将未完成的数据采集任务发送至重新选取的目标服务器标识对应的从属服务器进行数据采集。
在一些实施方式中,所述数据采集装置还包括列表更新单元,用于:
获取每一服务器标识对应的从属服务器的连接状态记录,并读取所述连接状态记录中的上一次状态更新时间和异常连接频次;
根据所述上一次状态更新时间确定更新间隔时长;
若检测到所述异常连接频次大于或等于预设异常频次阈值且所述更新间隔时长大于预设间隔时长阈值,则确定当前的从属服务器存在运行异常,并删除所述从属服务器列表中存在连接异常的从属服务器的服务器标识。
在一些实施方式中,所述列表更新单元,还用于:
接收向管理服务器发送的连接请求,所述连接请求携带有待连接的服务器标识;
建立与所述服务器标识对应的从属服务器之间的长连接状态,并将处于长连接状态的服务器标识记录至从属服务器列表。
在一些实施方式中,所述获取单元,还用于:
向中间服务端发送任务回调请求,使得所述中间服务端根据所述任务回调请求建立与所述管理服务器之间的任务传输通道,其中,所述中间服务端所存储的任务队列包含后台服务器下发的多个待接收加密任务;
基于所述任务传输通道,识别每一待接收加密任务对应的加密标识,并根据所述加密标识从所述多个待接收加密任务中选取待处理的目标加密任务;
对所述目标加密任务进行解密处理,得到待处理的数据采集任务。
此外,本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序实现本申请实施例提供的任一种数据采集方法中的步骤。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种数据采集方法中的步骤。
此外,本申请实施例还提供一种计算机程序产品,包括计算机指令,所述计算机指被执行时实现本申请实施例所提供的任一种数据采集方法中的步骤。
本申请实施例可以获取待处理的数据采集任务;读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态;计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。由此可得,本方案可在接收到采集任务时,查询与管理服务器建立长连接的从属服务器标识,并通过数据采集任务的哈希值和每一从属服务器的运行状态来选定需要分配采集任务的目标服务器标识,进而,将数据采集任务分配至目标服务器标识对应的目标从属服务器,以实现通分布式的目标从属服务进行数据采集,可使得数据采集进程不受限于运行资源的影响,保障数据采集过程中的性能,避免数据采集过程中系统奔溃的现象,提高数据采集效率和用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据采集系统的场景示意图;
图2是本申请实施例提供的数据采集方法的步骤流程示意图;
图3是本申请实施例提供的数据采集方法的另一步骤流程示意图;
图4是本申请实施例提供的数据采集系统的架构示意图;
图5是本申请实施例提供的数据采集方法的场景示意图;
图6是本申请实施例提供的数据采集方法的时序流程图;
图7是本申请实施例提供的后台服务器与管理服务器之间的任务下发的场景示意图;
图8是本申请实施例提供的管理服务器与从属服务器之间的任务分配方法的时序流程图;
图9是本申请实施例提供的数据采集装置的结构示意图;
图10是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据采集方法、装置以及计算机可读存储介质。具体地,本申请实施例将从数据采集装置的角度进行描述,该数据采集装置具体可以集成在计算机设备中,该计算机设备可以是服务器,也可以是用户终端等设备。其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,用户终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能家电、车载终端、智能语音交互设备、飞行器等,但并不局限于此。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息、用户使用记录、用户状况等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本申请实施例提供的数据采集方法可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等数据采集的场景,这些场景不限于通过云服务、大数据等方式实现,具体通过如下实施例进行说明:
例如,参见图1,为本申请实施例提供的数据采集系统的场景示意图。该场景包括后台服务器、管理服务器和从属服务器集群。
后台服务器可以是平台服务器,其可接收目标对象设定的数据采集任务并下发至管理服务器。
管理服务器可以获取待处理的数据采集任务;读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态;计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。
从属服务器集群可接受管理服务器的任务分配与调度,以执行相应的数据采集任务。
其中,数据采集过程可主要包括:请求获取采集任务、读取从属服务器列表信息、确定每一从属服务器的运行状态、计算采集任务的哈希值、选取待分配任务的目标服务器标识、分配数据采集任务至目标从属服务器等方式。
以下分别进行详细说明。需说明的是,以下实施例的顺序不作为对实施例优选顺序的限定。
在本申请实施例中,将从数据采集装置的角度进行描述,以该数据采集装置具体可以集成在计算机设备如服务器中,该服务器可以是服务器集群。参见图2,图2为本申请实施例提供的一种数据采集方法的步骤流程示意图,本申请实施例以数据采集装置具体集成在服务器上为例,服务器上的处理器执行数据采集方法对应的程序指令时,具体流程如下:
101、获取待处理的数据采集任务。
在本申请实施例中,为了通过充足的运行资源(如CPU、内存、缓存等)对海量数据进行采集,可通过分布式服务系统形式对数据采集任务进行管理,以对相应的终端设备(如工业设备)进行控制和数据采集。其中,该分布式服务系统可以由多个服务器分布联结构成,如一个主服务器和多个从服务器联结构成;又如,该分布式服务系统还可以由主服务节点和从属虚拟服务节点构成。需要说明的是,该主服务器/主服务节点可理解为管理服务器,该分布式服务系统主要为主从(master-slaver)模式,由主服务器/主服务节点接收数据采集任务进行任务管理,并下发至从属服务器/从属服务节点进行数据采集。
其中,该数据采集任务可以是在执行数据采集过程中的数据采集指标,用于限定数据采集过程中需要采集的数据属性或数据类型、时长等。需要说明的是,该数据采集任务可根据相应属性信息进行配置得到,具体的,可通过服务平台侧根据目标对象(如工厂、企业、个人或平台管理人员等)的数据采集需求进行任务配置,以得到需要执行的数据采集任务,例如,根据数据属性、数据量、采集时间段或采集时长等指标来配置数据采集任务。
在本申请实施例中,为了实现对数据采集任务的管理和执行,服务平台侧在检测到目标对象设定数据采集任务后,由服务平台侧下发该数据采集任务至本申请实施例的管理服务器(主服务器),以便对该数据采集任务进行管理,如选取运行资源充足的从属服务节点执行该数据采集任务。需要说明的是,在服务平台侧与管理服务器之间的数据采集任务的下发过程中的,可通过中间件来实现数据采集任务的传输。具体的,该中间件用于数据消息(如数据采集任务)传输过程的数据消息的寄存、缓存、发送等,以避免在传输过程中管理服务器在无法及时接收和处理数据采集任务时,对数据采集任务进行寄存、保留等,以等待管理服务器回调该待下发的数据采集任务。
在一些实施方式中,为了满足目标对象的数据采集需求,管理服务器可从中间服务端(即中间件)中回调数据采集任务。具体的,步骤101“获取待处理的数据采集任务”,可以包括:向中间服务端发送任务回调请求,使得中间服务端根据任务回调请求建立与管理服务器之间的任务传输通道,其中,中间服务端所存储的任务队列包含后台服务器下发的多个待接收加密任务;基于任务传输通道,识别每一待接收加密任务对应的加密标识,并根据加密标识从多个待接收加密任务中选取待处理的目标加密任务;对目标加密任务进行解密处理,得到待处理的数据采集任务。
其中,该中间服务端为服务平台侧与管理服务器之间的中间件,用于服务平台侧与管理服务器之间的消息数据传输,如用于数据采集任务的传输。需要说明的是,该中间服务端可以理解为消息队列(Message Queue),例如,该中间服务端可以是分布式消息系统(kafka),以实现服务平台侧与管理服务器之间的异步通信、消息订阅、消息发布等。
其中,该后台服务器可以是服务平台侧对应的服务器,即系统最后端,用于根据目标对象的需求配置对应的数据采集任务。
其中,该待接收加密任务可以是数据采集任务经过加密处理后的任务信息,其具有对应的加密标识或唯一标识;具体的,该待接收加密任务可以理解为针对数据采集任务设定密钥标识得到的任务信息,其具有对应的密钥唯一标识,用于区分其他任务或消息。需要说明的是,为了实现将数据采集任务下发至中间服务端中的特定分区,后台服务器可针对下发的数据采集任务设置唯一标识,以使得当前的数据采集任务下发存储至中间服务端的目标分区中。
具体的,为了得到所要执行的数据采集任务,本申请实施例的管理服务器可以实时或定期向中间服务端发送任务回调消息,即任务回调请求,实现对管理服务器与中间服务端之间的通信测试,并建立两者之间的任务传输通道,以确保管理服务器与中间服务端之间在任务下发时稳定性,避免通信异常给任务下发带来影响;进而,通过该任务传输通道识别每一个待接收加密任务的加密标识,该加密标识为相应任务的唯一标识,可通过该标识来确定中间服务端中的任务队列中的待接收加密任务是否被消费过,实现数据采集任务下发过程中的准确去重,因此,可基于每一待接收加密任务的加密标识,选取未消费(未下发至管理服务器)的目标接收加密任务作为目标加密任务,在选取的过程中可按照预设顺序进行选取,此处不限定;最后,对目标加密任务进行解密处理,得到解密处理后的数据采集任务。以此,以便后续对该数据采集任务进行管理,如任务分配、调度等。以提高数据采集效率。
通过以上方式,可获取数据采集任务,以便后续对该数据采集任务进行分配、调度,避免后续的数据采集过程受到运行资源的影响,提高后续的数据采集效率。
102、读取从属服务器列表。
在本申请实施例中,管理服务器在对数据采集任务的管理(如分配、调度等)时,主要是将接收到的数据采集任务分配到从属服务器/从属服务节点,以实现在分布式服务系统基础上对数据采集任务进行管理。因此,在实现管理服务器与从属服务器之间的任务管理时,需要建立管理服务器与从属服务器之间的长连接,以实现实时识别从属服务器的运行状态,从而将数据采集任务分配、调度至适合的从属服务器上执行。需要说明的是,在本申请实施例中,该管理服务器可以理解为本地服务器,该从属服务器可以是与管理服务器处于同一物理服务器中具有虚拟环境的服务节点,还可以是分布式服务集群中从属于管理服务器的一个服务节点。
其中,在建立管理服务器与从属服务器之间的长连接状态后,管理服务器会将建立长连接状态的从属服务器的从属服务器标识添加至本地储存空间的从属服务器列表,即该从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识。
其中,该服务器标识可以是相应从属服务器的一个或多个信息,如可以是相应从属服务器的网际互联协议(Internet Protocol,IP)地址、端口(port)等信息。需要说明的是,通过服务器标识可以识别、确定对应从属服务器。
在本申请实施例中,针对与管理服务器之间建立长连接状态的从属服务器,可将其对应的服务器标识添加存储至管理服务器中的从属服务器列表,以便于在对数据采集任务进行分配、调度等管理时,从该从属服务器列表中选取待分配任务的目标服务器标识,以实现数据采集任务的分配、调度。
在一些实施方式中,管理服务器可对从属服务器列表进行实时或定期的管理,以更新从属服务器列表中的信息,如将与管理服务器之间新建立连接的从属服务器的标识表示添加至列表中。具体的,步骤102之前可以包括:接收向管理服务器发送的连接请求,连接请求携带有待连接的服务器标识;建立与服务器标识对应的从属服务器之间的长连接状态,并将处于长连接状态的服务器标识记录至从属服务器列表。
需要说明的是,新的从属服务器可主动向管理服务器发出建立两者之间的长连接,在请求建立长连接时,待建立连接的从属服务器会主动向管理服务器上报服务器标识,如IP地址、port信息等。而管理服务器则会接收该待建立连接的从属服务器发送的连接请求,并检测该连接请求所携带的服务器标识,进而,根据该服务器标识,与对应的待建立连接的从属服务器之间建立长连接状态,并将该处于长连接状态的服务器标识记录至从属服务器列表,实现对更新从属服务器列表中的信息,以此,以便后续从该从属服务器列表中选取目标服务器标识进行数据采集任务的管理。
在一些实施方式中,管理服务器可对从属服务器列表进行实时或定期的管理,以更新从属服务器列表中的信息,如对存在连接异常的从属服务器的标识进行删除。具体的,步骤102之前可以包括:获取每一服务器标识对应的从属服务器的连接状态记录,并读取连接状态记录中的上一次状态更新时间和异常连接频次;根据上一次状态更新时间确定更新间隔时长;若检测到异常连接频次大于或等于预设异常频次阈值且更新间隔时长大于预设间隔时长阈值,则确定当前的从属服务器存在运行异常,并删除从属服务器列表中存在连接异常的从属服务器的服务器标识。
其中,该上一次状态更新时间可以是从属服务器向管理服务器上报状态的时间,还可以是从属服务器中的服务实例(如容器化的服务实例)向管理服务器上报状态的时间。具体的,管理服务器与从属服务器之间还可以通过心跳检测方式进行状态检测,如管理服务器定期(如3秒、5秒)分别向历史时间内建立长连接的任一从属服务器发生心跳检测,并在接收到从属服务器的心跳结果时,视为该从属服务器与管理服务器之间处于正常连接状态,因而在接收到下一次心跳结果之前,将本次接收心跳结果的时间作为上一次状态更新时间。
其中,该异常连接频次可以是从属服务器在历史时间内出现连接异常的次数。具体的,管理服务器在通过心跳检测方式对从属服务器进行状态检测时,未接收到从属服务器反馈的心跳结果,则视为该从属服务器与管理服务器之间处于异常连接状态,或说明从属服务器中的服务实例处于连接失败的状态,此时,将该异常连接状态记录至管理服务器的缓存中。
其中,该预设间隔时长阈值可以根据心跳检测周期设定,用于从属服务器的异常连接状态的判定。例如,可根据1个、3个或5个心跳检测周期设定,示例性的,一个心跳检测周期为5秒,则预设间隔时长阈值可以是5秒、10秒、15秒、25秒等。
其中,该预设异常频次阈值为从属服务器连接异常的判断值,用于对从属服务器的异常连接状态的判定。例如,从属服务器在历史时间内出现过3次以上的异常连接状态,可判定从属服务器与管理服务器之间连接不稳定,即连接异常。
具体的,为了检测在历史时间内是否存在连接异常的从属服务器,本申请实施例的管理服务器可获取从属服务器列表中每一服务器标识对应的从属服务器的连接状态记录,以确定相应从属服务器的上一次状态更新时间和异常连接频次,并根据上一次状态更新时间确定从属服务器的状态更新间隔时长,当状态更新间隔时长大于预设间隔时长阈值,而且异常连接频次大于或等于预设异常频次阈值时,确定该对应的从属服务器连接异常,即该从属服务器节点可能挂掉,后续不适合用于执行数据采集任务,因此,可将该连接异常的从属服务器标识在从属服务器列表中删除,以避免后续调用。其中,该删除过程还需删除相应的数据库、缓存、缓存数据、采集任务等。
通过以上方式,可对管理服务器中的从属服务器列表进行实时管理,并在对数据采集任务进行分配、调度时,读取、查询该从属服务器列表,以便后续选取合适的从属服务器执行数据采集任务。
103、检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态。
在本申请实施例中,为了选取具有较佳运行资源的从属服务器来执行数据采集任务,可以结合从属服务器当前的运行状态来选取。
其中,该运行状态可以是相应的从属服务器当前在运行时的设备状态,其可以反映相应从属服务器当前的资源占用情况。需要说明的是,该从属服务器的运行状态可以根据本机的资源占用情况来确定,例如,根据从属服务器当前的运算资源(CPU)、内存资源和/或缓存资源等指标来确定。
在一些实施方式中,由于根据运行状态来参与选取数据采集任务的执行主体,将按照是否可分配任务的方式来定义从属服务器的运行状态,即该运行状态可以包括可分配任务主体和不可分配任务状态。具体的,步骤103“检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态”,可以包括:获取每一服务器标识对应的从属服务器的运行资源信息;读取运行资源信息中的资源占用率;若检测到资源占用率小于预设资源占用阈值,则将对应的从属服务器的运行状态确定为可分配任务状态;若检测到资源占用率大于或等于预设资源占用阈值,则将对应的从属服务器的运行状态确定为不可分配任务状态。
其中,该运行资源信息可以是相应从属服务器中的资源占用信息,其不限于包括运算资源、内存资源、缓存资源等情况。需要说明的是,该运行资源信息由对应的从属服务器根据当前的资源占用比例来确定,具体的,从属服务器在确定运行资源信息时,可以通过向负载管理系统(如Kubernetes,k8s)获取其自身的各类资源使用指标数据,该负载管理系统会定期拉取每一节点(从属服务器)的各类资源的使用指标数据,并在从属服务器请求获取时,将该最新拉取的指标数据返回给从属服务器;进而,从属服务器根据各类资源的使用指标数据确定相应资源的占用比例,以生成运行资源信息。
其中,该预设资源占用阈值可以是从属服务器相关资源占用量的判断值,用于对从属服务器相关资源占用量进行运行状态判定。例如,当资源占用量或资源占用率超过该预设资源占用阈值时,可确定该从属服务器的资源负载过大,可能存在运行资源紧张的情况,若后续将数据采集任务分配至该资源负载过大的从属服务器,可能影响任务执行过程的性能,导致系统奔溃,降低数据采集效率,因此,为了避免该这种现象,可在资源占用率超过预设资源占用阈值时,确定从属服务器的运行状态为不可分配任务状态;反之,当资源占用率小于预设资源占用阈值时,确定从属服务器的运行状态为可分配任务状态。示例性的,该预设资源占用阈值可设定为50%,如针对运算资源、内存资源等,都可设定50%作为占用阈值,此处仅为示例,不作实施时的限定,具体可根据实际情况而定。
具体的,为了确定从属服务器列表中每一服务器标识对应的从属服务器的运行状态,本申请实施例可以查询每一从属服务器的运行资源信息,并根据运行资源信息来确定资源占用率,如以运行资源信息中的运算资源(CPU)信息为例,其可包含运算资源的使用量、占用率等,进而,根据运算资源的资源占用率与预设资源占用阈值之间进行比对,与确定该运算资源的资源占用率是否大于或等于该阈值,以便后续根据比对结果来判定从属服务器的运行状态。例如,当比对结果为资源占用率小于预设资源占用阈值,将对应的从属服务器的运行状态确定为可分配任务状态;反之,当比对结果为资源占用率大于或等于预设资源占用阈值,将对应的从属服务器的运行状态确定为不可分配任务状态。
通过以上方式,可识别出与管理服务器长连接的每一从属服务器的运行状态,以便后续结合运行状态选取出当前运行资源未超标的从属服务器,有效避免后续由于运行资源紧张而影响在执行数据采集任务时的性能。
104、计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识。
在本申请实施例中,为了使得数据采集任务均衡的分配到从属服务器中,管理服务器在下发数据采集任务时,可结合任务的哈希值进行从属服务器的选取,以使得后续将任务分配至分布式的从属服务器集群中,达到任务均衡的效果,确保后续数据采集过程的稳定性和性能。
其中,该目标哈希值可以是有当前的数据采集任务的标识计算得到的哈希值,用于参与后续从属服务器的选取,以便对数据采集任务的分配。需要说明的是,在计算目标哈希值时,主要是将当前的数据采集任务的标识进行散列计算,以获取十进制的哈希值;具体的,可获取当前的数据采集任务的目标任务标识,并按照预设哈希函数/算法针对该目标任务标识哈希值计算,得到目标哈希值,以用于从属服务器的标识的选取。
其中,该目标服务器标识可以是当前需要下发数据采集任务的从属服务器。
为了选取出具有较佳运行资源且能够达到任务均衡效果的目标服务器标识,本申请实施例在确定每一从属服务器的运行状态和当前数据采集任务的目标哈希值后,可根据该运行状态和目标哈希值来选取目标服务器标识,以便确定待下发数据采集任务的从属服务器。
在一些实施方式中,为了达到服务集群中任务均衡的效果,可根据目标哈希值和可选的从属服务器的数量进行从属服务器的任务分配。具体的,步骤104中的“根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识”,可以包括:
(104.1)基于从属服务器列表,筛选出运行状态为可分配任务状态的待选服务器标识;
(104.2)确定待选服务器标识的待选标识数量;
(104.3)根据目标哈希值与待选标识数量,确定待分配任务的目标服务器标识。
具体的,在确定从属服务器列表中每一服务器标识的运行状态后,可从该从属服务器列表中筛选出运行状态为可分配任务状态的服务器标识,并将该可分配任务状态的服务器标识作为待选服务器标识;进而,统计该待选服务器标识的数量,以确定当前可分配任务的从属服务器;最后,根据目标哈希值和的待选标识数量,从所有的待选服务器标识中选取待分配任务的目标服务器标识,以确保在运行资源充足的情况下,选取出目标服务器标识,以实现任务调度和达到任务均衡的效果。
在一些实施方式中,为了使得数据采集任务在下发至从属服务器集群中的某一目标从属服务器后,达到任务均衡的效果,可根据目标哈希值与待选标识数量之间的整除余数来选取目标服务器标识。则步骤(104.3)“根据目标哈希值与待选标识数量,确定待分配任务的目标服务器标识”,可以包括:对目标哈希值与待选标识数量之间进行整除计算,并确定整除计算后的哈希值余数;对待选服务器标识进行排序,得到待选服务器标识序列;按照哈希值余数,从待选服务器标识序列中选取对应排序位置的目标服务器标识。
其中,该待选服务器标识序列为包含所有待选服务器标识的序列,其具体包含各个待选服务器标识之间的排序关系。具体的,该排序关系可以是按照待选服务器标识对应的从属服务器的创建或启动的先后顺序来排序,也可以按照与管理服务器建立长连接关系的先后顺序来进行排序;此外,还可以按照待选服务器集群中每一待选的从属服务器包含的任务量来排序。
具体的,为了选取出待分配任务的模板服务器标识,本申请实施例在得到目标哈希值和待选标识数量后,可将该目标哈希值与待选标识数量之间进行整除计算,以获取在整除计算后的哈希值的余数,该余数作为选取服务器标识的指引参数;此外,对待选标识数量对应的待选服务器标识进行排序处理,以得到具有特定排序关系的待选服务器标识序列;最后,从该待选服务器标识序列中选取该哈希值余数的排序位置的待选服务器标识作为目标服务器标识。依次,以便后续将该数据采集任务下发至目标服务器标识对应的目标从属服务器执行,达到任务均衡的效果,提高后续数据采集过程的稳定性和性能。
在一些实施方式中,为了提高在选取待分配任务的目标服务器标识时的效率,可在选取服务器标识前,先确认多个待选服务器标识对应的从属服务器的资源占用率的情况,以确定是否从待选的从属服务器集群中直接选取资源占用率最小的从属服务器。
一方面,当各待选的从属服务器之间的资源占用率相等,则说明各待选的从属服务器之间的资源占用情况比较均衡,则需要通过目标哈希值与待选标识数量之间的哈希值余数来选取目标服务器标识。则步骤(104.3)之前,还可以包括:若检测到待选标识数量大于或等于预设待选数量阈值,则识别每一待选服务器标识对应的资源占用率;将多个资源占用率之间进行大小比对;若检测到多个资源占用率之间大小相等,则执行步骤(104.3)“根据目标哈希值与待选标识数量,确定待分配任务的目标服务器标识”。需要说明的是,该资源占用率的识别可与前述关于“运行状态”实施例的描述等同或相似,此处不再进行赘述。
另一方面,在确认多个待选服务器标识对应的从属服务器的资源占用率的情况后,当各待选的从属服务器之间的资源占用率大小不相等,则可选取资源占用率最小的从属服务器的服务器标识作为目标服务器标识。则在步骤(104.3)之前还包括:若检测到待选标识数量大于或等于预设待选数量阈值,则识别每一待选服务器标识对应的资源占用率;将多个资源占用率之间进行大小比对;若检测到多个资源占用率之间大小不相等,则将资源占用率最小的服务器标识作为待分配任务的目标服务器标识。以此,可提高在选取待分配任务的目标服务器标识时的效率。
此外,在确定待选标识数量后,还可根据该待选标识数量来确定是否进行待选的从属服务器之间的资源占用率大小比对,可以理解的是,当待选标识数量为1个时,可直接选取该待选服务器标识作为目标服务器标识,无需进行待选的从属服务器之间的资源占用率大小比对。则步骤步骤(104.3)之前还包括:若检测到待选标识数量小于预设待选数量阈值,则将待选服务器标识确定为待分配任务的目标服务器标识。以此,针对待选服务器标识的数量少的情况,如只有一个待选服务器标识时,可直接选取该待选服务器标识作为目标服务器标识。需要说明的是,可将该预设待选数量阈值设定为“2”,以作为是否直接选取待选服务器标识的判断参考值。
通过以上方式,可结合从属服务器的运行状态和数据采集任务的目标哈希值来选取到合适的目标服务器标识,以使得后续将数据采集任务分配至分布式的从属服务器集群中,达到任务均衡的效果,且确保后续数据采集过程的稳定性和性能。
105、将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。
在本申请实施例中,管理服务器在确定待分配采集任务的目标服务器标识后,可将当前的数据采集任务分配至该目标服务器标识对应的目标从属服务器中,以便该目标从属服务器执行该数据采集任务。
需要说明的是,目标从属服务器在执行该数据采集任务进行数据采集时,可以是通过该目标从属服务器中的服务运行实例来实现。其中,该服务运行实例可以理解为从属服务器中的最小部署单元(pod),其本质上属于一个在从属服务器上部署的一个服务环境,如在本申请实施例中为数据采集服务环境。
其中,该数据采集服务环境可包含多个容器化单元,其可以理解为虚拟包,通过每一容器化单元将应用程序代码和所需的组件打包捆绑在同一虚拟包中,以使得虚拟包内的软件或应用程序可在从属服务器中的服务运行示例环境上运行。例如,将数据采集程序相关的代码和组件打包进行容器化单元中,以使得目标从属服务器在接收到管理服务器分配的数据采集任务后,通过运行相应的容器化单元中数据采集程序的代码等,可运行相应的数据采集逻辑,以执行该数据采集任务。其中,在运行相应的数据采集逻辑时,可支持对应的采集设备针对数据采集任务进行数据采集,该采集设备可以是一线设备,如采集设备为工厂中的一线生产设备,通过数据采集,以获取对应的生产过程中的任一类型数据,如生产的数据、该生产设备本身的机器数据(如温度、工作时长等)、生产环境数据等;又如,该采集设备为汽车或汽车载体中的设备,用于收集汽车在行驶过程中的各类型数据,如油耗、里程数、保修数、最大功率等数据。
在一些实施方式中,通过选定的目标从属服务器执行数据采集任务进行数据采集后,由于该目标从属服务器中的运行资源可能会存在变动,当目标从属服务器出现运行资源的负载过大时,可将目标从属服务器中的数据采集任务调度至其他从属服务器进行执行。则步骤105“将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集”之后,还可以包括:
(105.a.1)获取目标从属服务器在执行数据采集任务时历史时段的资源平均占用率;
(105.a.2)当识别到资源平均占用率大于预设资源平均阈值时,则停止通过目标从属服务器执行数据采集任务,并从从属服务器列表中重新选取可分配任务的第二服务器标识;
(105.a.3)将数据采集任务发送至第二服务器标识对应的从属服务器进行数据采集。
其中,该资源平均占用率为目标从属服务器在历史时间段内的资源平均占用率。例如,最近5分钟内的运算资源平均占用率、内存资源平均占用率、缓存资源的平均占用率等。
其中,该预设资源平均阈值可以是目标从属服务器在历史时段的资源平均占用率的判断值,用于对目标从属服务器的资源平均使用情况进行判断。
具体的,在将数据采集任务发送至目标从属服务器进行数据采集后,可实时或定期检测目标从属服务器在执行数据采集任务时的资源占用情况,具体可以是历史时段内(如过去1分钟、5分钟或10分钟内)的资源平均占用率,并将检测到的资源平均占用率与预设资源平均阈值进行对比,以确定目标从属服务器当前的资源平均占用率的的情况;进而,当检测到资源平均占用率大于或等于该预设资源平均阈值时,表示目标从属服务器当前处于资源负载过大的情况。对此,为了避免负载过大对数据采集过程造成影响,本申请实施例可以从该从属服务器列表中重新选取可分配任务的第二服务器标识,并将该数据采集任务(或未完成的部分数据采集任务)发送至目标从属服务器进行执行,以实现数据采集。以此,有效避免该目标从属服务器中运行资源的超负载现象影响数据采集时的性能和集效率。
在一些实施方式中,当需要重新选取可分配任务的从属服务器时,同样可根据哈希值余数的方式进行选取。具体的,步骤(105.a.2)中的“从该从属服务器列表中重新选取可分配任务的第二服务器标识”,可以包括:将从属服务器列表中除目标服务器标识外的每一服务器标识确定为待确认的服务器标识,并确定待确认的服务器标识对应的第二待选标识数量;计算目标哈希值与第二待选标识数量之间的第一哈希值余数,并根据第一哈希值余数从多个待确认的服务器标识中待确认的第一服务器标识;若检测到第一服务器标识对应的从属服务器的资源占用率大于预设资源占用阈值,则拦截向第一服务器标识对应的从属服务器发送数据采集任务,并对目标哈希值进行二次哈希计算,得到第二哈希值;根据第二哈希值与第二待选标识数量之间的第二哈希值余数,从该从属服务器列表中重新选取可分配任务的第二服务器标识。
需要说明的是,由于目标服务器标识对应的目标从属服务器为首次被选中的任务执行服务器,但其在运行数据采集任务时出现运行资源负载过大的现象,因而,在重新选取可分配的第二服务器标识时,应当避开该首次选中目标服务器标识。具体的,将从属服务器列表中除目标服务器标识之外的其他服务器标识作为待确认的服务器标识,并确定这些待确认的服务器标识的数量,即第二待选标识数量,以用于后续的哈希值余数的计算。进而,根据当前数据采集任务的目标哈希值与该第二待选标识数量之间进行整除,得到整除后的第一哈希值余数,并对待确认的服务器标识进行排序得到第二服务器标识序列,进而,从该第二服务器标识序列中选取该第一哈希值余数对应的排序位置的服务器标识,作为第一服务器标识;为了确保该第一服务器标识对应的从属服务器能够拥有充足的运行资源执行对应的数据采集任务,本申请实施例可以检测该第一服务器标识对应的从属服务器的资源占用率情况。当检测到第一服务器标识对应的从属服务器的资源占用率小于预设资源占用阈值,可直接将数据采集任务(或未完成的数据采集任务)发送到第一服务器标识对应的从属服务器进行数据采集;反之,当检测到第一服务器标识对应的从属服务器的资源占用率大于预设资源占用阈值,说明该第一服务器标识对应的从属服务器的运行资源的负载过大,这会导致在执行数据采集任务时不具有保障性,因此,需要进一步选取其他从属服务器。进一步的,根据预设哈希算法对第一哈希值进行再次计算,以得到第二哈希值,并通过第一哈希值与第二待选标识数量之间进行哈希取余计算,得到第二哈希值余数;从第二服务器标识序列中选取第二哈希值余数对应的排序位置的服务器标识,作为第二服务器标识,以便后续将数据采集任务(或未完成的数据采集任务)发送到第二服务器标识对应的从属服务器进行数据采集。
需要说明的是,以上二次哈希值计算取余仅为示例,还可通过多次哈希散列计算,进行取余,以确定最终可调度数据采集任务的从属服务器,此处不做赘述。
在一些实施方式中,当将数据采集任务发送至目标服务器标识对应的目标从属服务器进行数据采集后,还可实时或定期检测从属服务器列表中每一服务器标识对应的从属服务器的资源占用率,并在所有从属服务器的运行资源都负载过大时,可创建新的从属服务器进行任务调度,以减轻各从属服务器的资源负载。则步骤105“将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集”之后,还可以包括:确定从属服务器列表中每一服务器标识对应的从属服务器的资源占用率;若检测到每一资源占用率大于预设资源占用阈值,则根据预设资源占用阈值确定从属服务器的资源可用数量,并根据资源可用数量创建与管理服务器长连接的新增从属服务器;将资源占用率大于预设资源占用阈值的从属服务器中的数据采集任务调度至新增从属服务器进行数据采集。
具体的,在创建新的从属服务器时,可按照预设资源占用阈值作为指标,以确定后续新创建的从属服务器的资源可用数量,以便根据资源可用数量尽可能地扩充后续新创建的从属服务器的运行资源数量。进而,根据该资源可用数量来查询与分布式服务集群中的其他符合条件的服务器,以将符合该资源可用数量的条件的服务器作为待新增的服务器,从而,管理服务器向该待新增的服务器请求获取服务器标识(如IP地址、port信息等),并根据获取服务器标识创建长连接关系,将该具有长连接状态的新增从属服务器作为新增从属服务器。最后,将资源占用率大于预设资源占用阈值的从属服务器中的数据采集任务(或未完成的部分数据采集任务)调度至新增从属服务器进行数据采集。以此,有效避免先前的从属服务器的负载过大导致系统奔溃的现象,可确保数据采集任务的完成,提高数据采集过程的性能和效率。
在一些实施方式中,将数据采集任务发送至目标服务器标识对应的目标从属服务器进行数据采集后,当检测到该目标从属服务器在执行数据采集任务时出现连接异常的情况,此时,管理服务器无法对该目标从属服务器本身的运行资源和分配的数据采集任务进行管理,因此,为了确保数据采集任务能够完成,还可重新选取其他从属服务器来执行该数据采集任务。具体的,步骤105“将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集”之后,还可以包括:检测目标从属服务器与管理服务器之间的连接状态;获取目标从属服务器的数据采集进度,并根据数据采集进度确定任务状态;当检测到连接状态为连接异常且任务状态为未完成时,从从属服务器列表中重新选取可分配任务的目标服务器标识,并将未完成的数据采集任务发送至重新选取的目标服务器标识对应的从属服务器进行数据采集。
通过以上方式,可将数据采集任务发送至相应的从属服务器执行,以实现数据采集,并在数据采集过程中,实时或定期检测各从属服务器中的运行资源的占用情况,以根据资源占用来对新增的任务、修改的任务或执行过程中的任务进行调度,以保障数据采集任务不受从属服务器的运行资源的超负载情况的影响,确保数据采集过程中的性能和稳定性,具有可靠性。
由上可知,本申请实施例可以获取待处理的数据采集任务;读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态;计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。由此可得,本方案可在接收到采集任务时,查询与管理服务器建立长连接的从属服务器标识,并通过数据采集任务的哈希值和每一从属服务器的运行状态来选定需要分配采集任务的目标服务器标识,进而,将数据采集任务分配至目标服务器标识对应的目标从属服务器,以实现通分布式的目标从属服务进行数据采集,可使得数据采集进程不受限于运行资源的影响,保障数据采集过程中的性能,避免数据采集过程中系统奔溃的现象,提高数据采集效率和用户体验。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
本申请实施例以数据处理为例,对本申请实施例提供的数据处理方法作进一步叙述。
图3是本申请实施例提供的数据采集方法的另一步骤流程示意图,图4是本申请实施例提供的数据采集系统的架构示意图;图5是本申请实施例提供的数据采集方法的场景示意图;图6是本申请实施例提供的数据采集方法的时序流程图;图7是本申请实施例提供的后台服务器与管理服务器之间的任务下发的场景示意图;图8是本申请实施例提供的管理服务器与从属服务器之间的任务分配方法的时序流程图。为了便于理解,本申请实施例结合图3-8进行描述。
在本申请实施例中,将从数据采集装置的角度进行描述,该数据采集装置具体可以集成在计算机设备如服务器集群中。本申请实施例具体以服务器集群包括后台服务器、中间服务器、管理服务器、从属服务器为例,服务器集群中各服务器之间通信连接,实现数据的实时传输和共享,当服务器集群上的处理器执行数据采集方法对应的程序指令时,该数据采集方法的具体流程如下:
201、从属服务器将服务器标识主动上报至管理服务器。
具体的,分布式系统中的任意服务器可主动发生自身的服务器标识(如IP地址、port端口信息)至管理服务器,以主动向管理服务器进行从属关系注册,在完成注册后,即可以作为从属服务器,以便后续执行相应的数据采集任务。
202、管理服务器根据接收到的服务器标识,建立与服务器标识对应的从属服务器之间的长连接状态,并将处于长连接状态的服务器标识记录至从属服务器列表。
具体的,管理服务器在接收到其它服务器的注册请求后,可根据接收到的服务器标识与对应的服务器建立长连接关系,并在完成长连接关系的建立后,可将该服务器标识记进行保存,如记录至从属服务器列表,以便后续使用;以此,完成注册过程。
其中,管理服务器可定期向从属服务器发送心跳检测,以检测从属服务器的在线情况。
203、后台服务器接收目标对象的任务配置信息,根据任务配置信息生成数据采集任务,并将数据采集任务下发至中间服务器。
其中,该任务配置信息可以是包含目标对象所要采集的数据的相关信息;具体的,可通过服务平台侧根据目标对象(如工厂、企业、个人或平台管理人员等)的数据采集需求进行任务配置,以得到需要执行的数据采集任务,例如,根据数据属性、数据量、采集时间段或采集时长等指标来配置数据采集任务。
其中,该数据采集任务可以是在执行数据采集过程中的数据采集指标,用于限定数据采集过程中需要采集的数据属性或数据类型、时长等。
需要说明的是,后台服务器在将数据采集任务下发至中间服务器时,可通过将该数据采集任务下发至中间服务器中相应的任务队列或特定位置,以使得中间服务器进行对数据采集任务进行缓存。
204、中间服务器将接收到的数据采集任务添加至任务队列,以供管理服务器对该数据采集任务进行回调。
具体的,中间服务器在接收到数据采集任务后,可将其添加至任务队列,以及存储至相应的存储空间,以供管理服务器的回调。例如,以kafka作为中间服务器为例,kafka可将数据采集任务发布至主题(topic_call)中,以供管理服务器的调用。
205、管理服务器发送任务回调请求至中间服务器,并通过任务传输通道从中间服务器中回调待处理的数据采集任务。
具体的,为了得到所要执行的数据采集任务,本申请实施例的管理服务器可以实时或定期向中间服务端发送任务回调请求,实现对管理服务器与中间服务端之间的通信测试,并建立两者之间的任务传输通道,以确保管理服务器与中间服务端之间在任务下发时稳定性。进而,通过密钥唯一标识的方式对数据采集任务进行去重,以避免重复消费中间服务器中任务队列的数据采集任务,以回调未消费的数据采集任务,即待处理的数据采集任务。
206、管理服务器读取从属服务器列表,并识别从属服务器列表中与管理服务器建立长连接的从属服务器的服务器标识。
具体的,管理服务器在获取待处理的数据采集任务后,可读取从属服务器列表,以确定与管理服务器建立长连接的从属服务器的服务器标识,以便后续选取。
207、管理服务器检测每一服务器标识对应的从属服务器的运行状态。
在本申请实施例中,为了选取具有较佳运行资源的从属服务器来执行数据采集任务,可以结合从属服务器当前的运行状态来选取。
具体的,查询每一从属服务器的运行资源信息,并根据运行资源信息来确定资源占用率,如以运行资源信息中的运算资源(CPU)信息为例,其可包含运算资源的使用量、占用率等,进而,根据运算资源的资源占用率与预设资源占用阈值之间进行比对,与确定该运算资源的资源占用率是否大于或等于该阈值,以便后续根据比对结果来判定从属服务器的运行状态。例如,当比对结果为资源占用率小于预设资源占用阈值,将对应的从属服务器的运行状态确定为可分配任务状态;反之,当比对结果为资源占用率大于或等于预设资源占用阈值,将对应的从属服务器的运行状态确定为不可分配任务状态。
208、管理服务器基于从属服务器列表,筛选出运行状态为可分配任务状态的待选服务器标识,并确定待选服务器标识的待选标识数量。
具体的,在确定从属服务器列表中每一服务器标识的运行状态后,可从该从属服务器列表中筛选出运行状态为可分配任务状态的服务器标识,并将该可分配任务状态的服务器标识作为待选服务器标识;进而,确定该待选服务器标识的数量。
其中,当待选标识数量为1个时,可直接选取该待选服务器标识作为目标服务器标识,并可直接执行步骤210。反之,若当待选标识数量为多个时,则根据目标哈希值与待选标识数量,从该从属服务器列表中确定待分配任务的目标服务器标识。
209、管理服务器根据目标哈希值与待选标识数量,从该从属服务器列表中确定待分配任务的目标服务器标识。
具体的,为了选取出待分配任务的模板服务器标识,本申请实施例在得到目标哈希值和待选标识数量后,可将该目标哈希值与待选标识数量之间进行整除计算,以获取在整除计算后的哈希值的余数,该余数作为选取服务器标识的指引参数;此外,对待选标识数量对应的待选服务器标识进行排序处理,以得到具有特定排序关系的待选服务器标识序列;最后,从该待选服务器标识序列中选取该哈希值余数的排序位置的待选服务器标识作为目标服务器标识。依次,以便后续将该数据采集任务下发至目标服务器标识对应的目标从属服务器执行,达到任务均衡的效果,提高后续数据采集过程的稳定性和性能。
210、管理服务器将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。
具体的,管理服务器在确定待分配采集任务的目标服务器标识后,可将当前的数据采集任务分配至该目标服务器标识对应的目标从属服务器中,以通过该目标从属服务器执行该数据采集任务,以实现数据采集。
211、管理服务器在检测到目标从属服务器的资源占用率大于或等于预设资源占用阈值时,重新选取可分配任务的第二服务器标识,将该未完成的数据采集任务重新分配至第二服务器标识对应的从属服务器进行数据采集。
具体的,通过选定的目标从属服务器执行数据采集任务进行数据采集后,由于该目标从属服务器中的运行资源可能会存在变动,为了避免目标从属服务器由于运行资源的变动影响数据采集任务的执行,管理服务器可实时或定期检测目标从属服务器的资源占用率。进而,当检测到目标从属服务器的资源占用率大于或等于预设资源占用阈值时,确定目标从属服务器出现运行资源的负载过大。为了避免负载过大对数据采集过程造成影响,本申请实施例可以从该从属服务器列表中重新选取可分配任务的第二服务器标识,并将该数据采集任务(或未完成的部分数据采集任务)发送至目标从属服务器进行执行,以实现数据采集。以此,实现对数据采集任务的调度,以保障数据采集任务不受从属服务器的运行资源的超负载情况的影响,确保数据采集过程中的性能和稳定性,具有可靠性。
为了便于对本申请实施例的理解,将以具体的应用场景实例对本申请实施例进行描述。具体的,通过执行以上步骤201-211,以及结合图4-图8,对该应用场景实例进行描述。其中,以工厂设备的应用场景为例,该数据采集场景实例进行描述,具体如下:
一、该数据采集系统的架构包括物联平台侧(后台服务器)、中间件(如MQ、kafka的中间服务器)、边缘采集服务(1个master-多slaver节点)。其中,平台侧可接入多个边缘采集服务,以实现多供应商的场景,一个边缘采集服务对应一个厂区,由边缘采集服务进行工业协议解析(如modbus、OPC等不同设备协议的分类)。其中,边缘采集服务的master节点(管理服务器)负责对接物联平台侧,以进行采集任务订阅、采集任务调度、节点状态检测、任务下发等。其中,slaver节点(edge-adapter,即从属服务器)负责对接厂区设备,以进行数据采集,一个slaver节点可以支持多个设备采集,并通过kafka进行转发配置信息、数据上报。其中,平台侧服务具有设定设备配置(通道、设备、点位)、规则计算、数据预览、数据存储等核心能力。具体的,用户在平台添加对应设备信息,包括通道、设备、点位,平台通过MQ(中间服务器)发布到对应的边缘采集节点(管理服务器),边缘采集节点进行配置拉取,同时进行采集任务节点选取,选取到合适节点(从属服务器),进行配置下发,由配置节点进行采集。关于该数据采集系统的架构请参见图4所示。
二、该数据信息采集系统的流程主要包括:主从节点(管理服务器与从属服务器)的状态维护与任务下发流程。具体的,基于云原生架构,边缘采集服务通过主从模式(master-slaver)进行设计,其中slaver节点为多节点,支持分布式调度,在整个环境中,master节点对slaver节点进行状态监测、节点列表维护,以实现后续的数据采集任务的调度。具体的,在边缘采集服务侧,主节点(master)启动,负责对接平台侧数据下发;数据采集节点slaver启动后,将自身节点信息(包括IP、port上报主机节点)上报至主节点;主节点收到消息后,对节点信息进行存储,并进行slaver响应,slaver收到节点信息后,即可完成注册过程。此外,master可通过心跳方式对slaver节点进行状态检测,检测间隔时间为5秒;一方面,当master在检测状态为成功时,更新节点可用表(从属服务器列表)信息,具体为更新slaver节点的最近一次更新时间;另一方面,若心跳监测失败,则标记slaver节点的状态为失败,并在累计三次失败后,将slaver节点上的定时任务(规定时间内执行的数据采集任务)进行移除,并将slaver节点上的任务实例状态修改,删除对应服务运行实例,以及,对数据采集任务进行重新调度。平台侧下发数据采集任务后,通过主节点订阅,主节点根据节点可用列表,通过算法筛选可用slaver节点,并进行配置数据(数据采集任务)分配,即可完成整个任务配置过程。关于该流程可参见图5和图6所示。
具体参见图6,主从节点的状态维护与任务下发过程的核心流程不限于包括主从节点的状态监测与维护、任务配置(数据采集任务)下发、配置下发实现与状态同步、节点管理、采集任务分布式调度、节点异常调度管理、任务调度算法等。需要说明的是,通过节点状态管理,实现master-slaver架构的主从节点状态监测;通过任务配置的分布式调度,实现平台侧与边缘采集服务端之间数据采集任务下发与上报,以实现采集任务的分配;通过节点异常调度管理,以在节点正常、异常、节点负载过高情况下,实现任务均衡配置。
其中,任务配置(数据采集任务)下发是指:平台侧下发任务配置至中间件(MQ),并由中间件下发至边缘采集服务(主从节点)。需要说明的是,平台侧与边缘采集服务端之间的任务配置、数据下发、任务调度、状态反馈等属于一个分布式系统事项,其中,以kafka作为MQ为例,实现任务配置下发,状态应答。该任务配置下发的流程具体可参见图6和图7所示。
其中,该边缘采集服务在接收到下发的任务配置后,边缘采集服务中master节点在检测到slaver节点初始化后,master节点可根据slaver节点的状态情况便跟下发接收到的任务配置。关于主节点与从节点之间的任务配置下发流程可参见图6和图8所示。
其中,该任务调度算法用于对主从节点之间的采集任务分配过程。需要说明的是,在结合云原生架构进行采集任务调度时,除了考虑从节点中的任务数等指标外,还需考虑从节点指标能力,即从节点的运行状态或资源占用率。具体的,在master-slaver节点架构中,任务调度算法主要是根据kubernetes中的metric组件拉去的指标数据(如CPU、内存平均占用率)作为重要因素。例如,在针对新增的任务进行分配调度时,筛选出合适的调度节点(slaver)后,会查询该节点近5分钟的资源平均占用率,若资源平均占用率超过阈值,则对该节点被排除,重新选取其他调度节点,以保证平台侧新下发的采集任务在进行分配时,不会影响个从节点现有的采集任务的执行。
此外,当各slaver节点负载过高时,master节点会通过HPA水平伸缩,增加新的slaver节点,以减轻节点采集任务的执行压力。当新的slaver节点生后,master节点会根据定时任务流程对所有slaver节点遍历,筛选负载过高的slaver节点,并将负载过高的slaver节点中的部分任务,通过hash后取余操作选取低负载的slaver节点,以工任务调度使用;具体为,将该部分任务调度至选取的低负载的slaver节点,以及,将负载过高的slaver节点中的旧任务被删除。以上流程可参见图6中的节点异常与调度部分。
通过以上应用场景实例,可实现如下效果:实现采集节点健康检查,实现自定义调度算法,融合集群资源检测,能够动态控制采集任务分配、异常任务调度、节点异常下线、节点增加的任务分配,增大数据采集的吞吐与处理能力,充分利用集群资源,进行采集服务自动运维、自动检测、自动伸缩,提高采集性能、稳定性、可靠性,同时支持采集任务水平添加,大大提升系统的采集设备数、通道,满足大型企业场景,进行采集任务自动调度,最大限度减少故障发现时间,减少数据丢失。
由以上可知,本申请实施例可在接收到采集任务时,查询与管理服务器建立长连接的从属服务器标识,并通过数据采集任务的哈希值和每一从属服务器的运行状态来选定需要分配采集任务的目标服务器标识,进而,将数据采集任务分配至目标服务器标识对应的目标从属服务器,以实现通分布式的目标从属服务进行数据采集,可使得数据采集进程不受限于运行资源的影响,保障数据采集过程中的性能,避免数据采集过程中系统奔溃的现象,提高数据采集效率和用户体验。
为了更好地实施以上方法,本申请实施例还提供一种数据采集装置。例如,如图9所示,该数据采集装置可以包括获取单元401、读取单元402、检测单元403、选取单元404和采集单元405。
获取单元401,用于获取待处理的数据采集任务;
读取单元402,用于读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;
检测单元403,用于检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态;
选取单元404,用于计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;
采集单元405,用于将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。
在一些实施方式中,运行状态包含可分配任务状态和不可分配任务状态,检测单元403,还用于:获取每一服务器标识对应的从属服务器的运行资源信息;读取运行资源信息中的资源占用率;若检测到资源占用率小于预设资源占用阈值,则将对应的从属服务器的运行状态确定为可分配任务状态;若检测到资源占用率大于或等于预设资源占用阈值,则将对应的从属服务器的运行状态确定为不可分配任务状态。
在一些实施方式中,选取单元404,还用于:基于从属服务器列表,筛选出运行状态为可分配任务状态的待选服务器标识;确定待选服务器标识的待选标识数量;根据目标哈希值与待选标识数量,确定待分配任务的目标服务器标识。
在一些实施方式中,选取单元404,还用于:对目标哈希值与待选标识数量之间进行整除计算,并确定整除计算后的哈希值余数;对待选服务器标识进行排序,得到待选服务器标识序列;按照哈希值余数,从待选服务器标识序列中选取对应排序位置的目标服务器标识。
在一些实施方式中,数据采集装置还包括识别单元,还用于:若检测到待选标识数量大于或等于预设待选数量阈值,则识别每一待选服务器标识对应的资源占用率;将多个资源占用率之间进行大小比对;
则选取单元404,还用于若检测到多个资源占用率之间大小相等,则根据目标哈希值与待选标识数量,确定待分配任务的目标服务器标识。
在一些实施方式中,选取单元404,还用于:若检测到多个资源占用率之间大小不相等,则将资源占用率最小的服务器标识作为待分配任务的目标服务器标识。
在一些实施方式中,数据采集装置还包括任务调度单元,还用于:获取目标从属服务器在执行数据采集任务时历史时段的资源平均占用率;当识别到资源平均占用率大于预设资源平均阈值时,则停止通过目标从属服务器执行数据采集任务,并从从属服务器列表中重新选取可分配任务的第二服务器标识;将数据采集任务发送至第二服务器标识对应的从属服务器进行数据采集。
在一些实施方式中,任务调度单元,还用于:将从属服务器列表中除目标服务器标识外的每一服务器标识确定为待确认的服务器标识,并确定待确认的服务器标识对应的第二待选标识数量;计算目标哈希值与第二待选标识数量之间的第一哈希值余数,并根据第一哈希值余数从多个待确认的服务器标识中待确认的第一服务器标识;若检测到第一服务器标识对应的从属服务器的资源占用率大于预设资源占用阈值,则拦截向第一服务器标识对应的从属服务器发送数据采集任务,并对目标哈希值进行二次哈希计算,得到第二哈希值;根据第二哈希值与第二待选标识数量之间的第二哈希值余数,从该从属服务器列表中重新选取可分配任务的第二服务器标识。
在一些实施方式中,任务调度单元,还用于:确定从属服务器列表中每一服务器标识对应的从属服务器的资源占用率;若检测到每一资源占用率大于预设资源占用阈值,则根据预设资源占用阈值确定从属服务器的资源可用数量,并根据资源可用数量创建与管理服务器长连接的新增从属服务器;将资源占用率大于预设资源占用阈值的从属服务器中的数据采集任务调度至新增从属服务器进行数据采集。
在一些实施方式中,任务调度单元,还用于:检测目标从属服务器与管理服务器之间的连接状态;获取目标从属服务器的数据采集进度,并根据数据采集进度确定任务状态;当检测到连接状态为连接异常且任务状态为未完成时,从从属服务器列表中重新选取可分配任务的目标服务器标识,并将未完成的数据采集任务发送至重新选取的目标服务器标识对应的从属服务器进行数据采集。
在一些实施方式中,数据采集装置还包括列表更新单元,用于:获取每一服务器标识对应的从属服务器的连接状态记录,并读取连接状态记录中的上一次状态更新时间和异常连接频次;根据上一次状态更新时间确定更新间隔时长;若检测到异常连接频次大于或等于预设异常频次阈值且更新间隔时长大于预设间隔时长阈值,则确定当前的从属服务器存在运行异常,并删除从属服务器列表中存在连接异常的从属服务器的服务器标识。
在一些实施方式中,列表更新单元,还用于:接收向管理服务器发送的连接请求,连接请求携带有待连接的服务器标识;建立与服务器标识对应的从属服务器之间的长连接状态,并将处于长连接状态的服务器标识记录至从属服务器列表。
在一些实施方式中,获取单元401,还用于:向中间服务端发送任务回调请求,使得中间服务端根据任务回调请求建立与管理服务器之间的任务传输通道,其中,中间服务端所存储的任务队列包含后台服务器下发的多个待接收加密任务;基于任务传输通道,识别每一待接收加密任务对应的加密标识,并根据加密标识从多个待接收加密任务中选取待处理的目标加密任务;对目标加密任务进行解密处理,得到待处理的数据采集任务。
由以上可知,本申请实施例可以通过获取单元401获取待处理的数据采集任务;通过读取单元402读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;通过检测单元403检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态;通过选取单元404计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;通过采集单元405将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。由此可得,本方案可在接收到采集任务时,查询与管理服务器建立长连接的从属服务器标识,并通过数据采集任务的哈希值和每一从属服务器的运行状态来选定需要分配采集任务的目标服务器标识,进而,将数据采集任务分配至目标服务器标识对应的目标从属服务器,以实现通分布式的目标从属服务进行数据采集,可使得数据采集进程不受限于运行资源的影响,保障数据采集过程中的性能,避免数据采集过程中系统奔溃的现象,提高数据采集效率和用户体验。
本申请实施例还提供一种计算机设备,如图10所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图10中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器501是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据采集。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
计算机设备还包括给各个部件供电的电源503,优选的,电源503可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本申请实施例中,计算机设备中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能,如下:
获取待处理的数据采集任务;读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态;计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
由此可得,本方案可在接收到采集任务时,查询与管理服务器建立长连接的从属服务器标识,并通过数据采集任务的哈希值和每一从属服务器的运行状态来选定需要分配采集任务的目标服务器标识,进而,将数据采集任务分配至目标服务器标识对应的目标从属服务器,以实现通分布式的目标从属服务进行数据采集,可使得数据采集进程不受限于运行资源的影响,保障数据采集过程中的性能,避免数据采集过程中系统奔溃的现象,提高数据采集效率和用户体验。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种数据采集方法中的步骤。例如,该指令可以执行如下步骤:
获取待处理的数据采集任务;读取从属服务器列表,从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;检测从属服务器列表中每一服务器标识对应的从属服务器的运行状态;计算数据采集任务的目标哈希值,并根据目标哈希值和运行状态从从属服务器列表中选取待分配任务的目标服务器标识;将数据采集任务分配至目标服务器标识对应的目标从属服务器进行数据采集。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种数据采集方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据采集方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种数据采集方法、装置以及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种数据采集方法,其特征在于,包括:
获取待处理的数据采集任务;
读取从属服务器列表,所述从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;
检测所述从属服务器列表中每一服务器标识对应的从属服务器的运行状态;
计算所述数据采集任务的目标哈希值,并根据所述目标哈希值和所述运行状态从所述从属服务器列表中选取待分配任务的目标服务器标识;
将所述数据采集任务分配至所述目标服务器标识对应的目标从属服务器进行数据采集。
2.根据权利要求1所述的方法,其特征在于,所述运行状态包含可分配任务状态和不可分配任务状态,所述检测所述从属服务器列表中每一服务器标识对应的从属服务器的运行状态,包括:
获取每一服务器标识对应的从属服务器的运行资源信息;
读取所述运行资源信息中的资源占用率;
若检测到所述资源占用率小于预设资源占用阈值,则将对应的从属服务器的运行状态确定为可分配任务状态;
若检测到所述资源占用率大于或等于预设资源占用阈值,则将对应的从属服务器的运行状态确定为不可分配任务状态。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标哈希值和所述运行状态从所述从属服务器列表中选取待分配任务的目标服务器标识,包括:
基于所述从属服务器列表,筛选出所述运行状态为可分配任务状态的待选服务器标识;
确定所述待选服务器标识的待选标识数量;
根据所述目标哈希值与所述待选标识数量,确定待分配任务的目标服务器标识。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标哈希值与所述待选标识数量,确定待分配任务的目标服务器标识,包括:
对所述目标哈希值与所述待选标识数量之间进行整除计算,并确定整除计算后的哈希值余数;
对所述待选服务器标识进行排序,得到待选服务器标识序列;
按照所述哈希值余数,从所述待选服务器标识序列中选取对应排序位置的目标服务器标识。
5.根据权利要求3所述的方法,其特征在于,所述根据所述目标哈希值与所述待选标识数量,确定待分配任务的目标服务器标识之前,还包括:
若检测到所述待选标识数量大于或等于预设待选数量阈值,则识别每一待选服务器标识对应的资源占用率;
将多个所述资源占用率之间进行大小比对;
则所述根据所述目标哈希值和所述标识数量,确定待分配任务的目标服务器标识,包括:
若检测到多个所述资源占用率之间大小相等,则根据所述目标哈希值与所述待选标识数量,确定待分配任务的目标服务器标识。
6.根据权利要求5所述的方法,其特征在于,还包括:
若检测到多个所述资源占用率之间大小不相等,则将所述资源占用率最小的服务器标识作为待分配任务的目标服务器标识。
7.根据权利要求1所述的方法,其特征在于,所述将所述数据采集任务分配至所述目标服务器标识对应的目标从属服务器进行数据采集之后,还包括:
获取所述目标从属服务器在执行所述数据采集任务时历史时段的资源平均占用率;
当识别到所述资源平均占用率大于预设资源平均阈值时,则停止通过所述目标从属服务器执行所述数据采集任务,并从所述从属服务器列表中重新选取可分配任务的第二服务器标识;
将所述数据采集任务发送至所述第二服务器标识对应的从属服务器进行数据采集。
8.根据权利要求7所述的方法,其特征在于,所述从所述从属服务器列表中重新选取可分配任务的第二服务器标识,包括:
将所述从属服务器列表中除所述目标服务器标识外的每一服务器标识确定为待确认的服务器标识,并确定所述待确认的服务器标识对应的第二待选标识数量;
计算所述目标哈希值与所述第二待选标识数量之间的第一哈希值余数,并根据所述第一哈希值余数从多个所述待确认的服务器标识中待确认的第一服务器标识;
若检测到所述第一服务器标识对应的从属服务器的资源占用率大于预设资源占用阈值,则拦截向所述第一服务器标识对应的从属服务器发送所述数据采集任务,并对所述目标哈希值进行二次哈希计算,得到第二哈希值;
根据所述第二哈希值与所述第二待选标识数量之间的第二哈希值余数,从所述从属服务器列表中重新选取可分配任务的第二服务器标识。
9.根据权利要求1所述的方法,其特征在于,所述将所述数据采集任务分配至所述目标服务器标识对应的目标从属服务器进行数据采集之后,还包括:
确定所述从属服务器列表中每一服务器标识对应的从属服务器的资源占用率;
若检测到每一资源占用率大于预设资源占用阈值,则根据所述预设资源占用阈值确定从属服务器的资源可用数量,并根据所述资源可用数量创建与管理服务器长连接的新增从属服务器;
将所述资源占用率大于预设资源占用阈值的从属服务器中的数据采集任务调度至所述新增从属服务器进行数据采集。
10.根据权利要求1所述的方法,其特征在于,所述将所述数据采集任务分配至所述目标服务器标识对应的目标从属服务器进行数据采集之后,还包括:
检测所述目标从属服务器与所述管理服务器之间的连接状态;
获取所述目标从属服务器的数据采集进度,并根据所述数据采集进度确定任务状态;
当检测到所述连接状态为连接异常且所述任务状态为未完成时,从所述从属服务器列表中重新选取可分配任务的目标服务器标识,并将未完成的数据采集任务发送至重新选取的目标服务器标识对应的从属服务器进行数据采集。
11.根据权利要求1所述的方法,其特征在于,所述读取从属服务器列表之前,还包括:
获取每一服务器标识对应的从属服务器的连接状态记录,并读取所述连接状态记录中的上一次状态更新时间和异常连接频次;
根据所述上一次状态更新时间确定更新间隔时长;
若检测到所述异常连接频次大于或等于预设异常频次阈值且所述更新间隔时长大于预设间隔时长阈值,则确定当前的从属服务器存在运行异常,并删除所述从属服务器列表中存在连接异常的从属服务器的服务器标识。
12.根据权利要求1所述的方法,其特征在于,所述读取从属服务器列表之前,还包括:
接收向管理服务器发送的连接请求,所述连接请求携带有待连接的服务器标识;
建立与所述服务器标识对应的从属服务器之间的长连接状态,并将处于长连接状态的服务器标识记录至从属服务器列表。
13.根据权利要求1所述的方法,其特征在于,所述获取待处理的数据采集任务,包括:
向中间服务端发送任务回调请求,使得所述中间服务端根据所述任务回调请求建立与所述管理服务器之间的任务传输通道,其中,所述中间服务端所存储的任务队列包含后台服务器下发的多个待接收加密任务;
基于所述任务传输通道,识别每一待接收加密任务对应的加密标识,并根据所述加密标识从所述多个待接收加密任务中选取待处理的目标加密任务;
对所述目标加密任务进行解密处理,得到待处理的数据采集任务。
14.一种数据采集装置,其特征在于,包括:
获取单元,用于获取待处理的数据采集任务;
读取单元,用于读取从属服务器列表,所述从属服务器列表包含与管理服务器建立长连接的从属服务器的服务器标识;
检测单元,用于检测所述从属服务器列表中每一服务器标识对应的从属服务器的运行状态;
选取单元,用于计算所述数据采集任务的目标哈希值,并根据所述目标哈希值和所述运行状态从所述从属服务器列表中选取待分配任务的目标服务器标识;
采集单元,用于将所述数据采集任务分配至所述目标服务器标识对应的目标从属服务器进行数据采集。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至13任一项所述的数据采集方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020430.0A CN117675847A (zh) | 2022-08-24 | 2022-08-24 | 数据采集方法、装置以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020430.0A CN117675847A (zh) | 2022-08-24 | 2022-08-24 | 数据采集方法、装置以及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117675847A true CN117675847A (zh) | 2024-03-08 |
Family
ID=90071756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211020430.0A Pending CN117675847A (zh) | 2022-08-24 | 2022-08-24 | 数据采集方法、装置以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117675847A (zh) |
-
2022
- 2022-08-24 CN CN202211020430.0A patent/CN117675847A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8949847B2 (en) | Apparatus and method for managing resources in cluster computing environment | |
JP6563936B2 (ja) | クラウドに基づく仮想オーケストレーターのための方法、システム、およびコンピュータ読取可能な媒体 | |
US8589538B2 (en) | Storage workload balancing | |
US8533731B2 (en) | Apparatus and method for distrubuting complex events based on correlations therebetween | |
US8510742B2 (en) | Job allocation program for allocating jobs to each computer without intensively managing load state of each computer | |
US20100138540A1 (en) | Method of managing organization of a computer system, computer system, and program for managing organization | |
CN103366022B (zh) | 信息处理系统及其处理方法 | |
JP2001084195A (ja) | イベント制御手段を備えたネットワーク管理システム | |
CN112437129B (zh) | 集群的管理方法及集群的管理装置 | |
US20160344582A1 (en) | Call home cluster | |
CN112333249B (zh) | 一种业务服务系统及方法 | |
KR20110083084A (ko) | 가상화를 이용한 서버 운영 장치 및 방법 | |
JP2017037492A (ja) | 分散処理プログラム、分散処理方法および分散処理装置 | |
CN112231108A (zh) | 任务处理方法、装置、计算机可读存储介质及服务器 | |
CN113986534A (zh) | 任务调度方法、装置、计算机设备和计算机可读存储介质 | |
CN114900449B (zh) | 一种资源信息管理方法、系统及装置 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN111418187A (zh) | 云网络中的可伸缩统计和分析机制 | |
JP2010128597A (ja) | 情報処理装置及び情報処理装置の運用方法 | |
CN103186536A (zh) | 一种调度数据共享装置的方法及系统 | |
CN105338037A (zh) | 一种动态调度方法及系统 | |
CN109005071B (zh) | 一种决策部署方法和调度设备 | |
US20120102290A1 (en) | Storage Scalability Management | |
CN117675847A (zh) | 数据采集方法、装置以及计算机可读存储介质 | |
CN115329005A (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 |