CN115373811A - 业务相关数据上报系统、方法及装置 - Google Patents
业务相关数据上报系统、方法及装置 Download PDFInfo
- Publication number
- CN115373811A CN115373811A CN202111632184.XA CN202111632184A CN115373811A CN 115373811 A CN115373811 A CN 115373811A CN 202111632184 A CN202111632184 A CN 202111632184A CN 115373811 A CN115373811 A CN 115373811A
- Authority
- CN
- China
- Prior art keywords
- service
- data
- related data
- batch
- reporting
- 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
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种业务相关数据上报系统、方法和装置。所述系统包括客户端和服务端,其中:客户端,用于对目标任务的执行状态进行数据探测,得到业务相关数据,将业务相关数据存储至数据队列;客户端,用于生成数据上报请求,将数据上报请求发送至服务端;服务端,用于通过目标探测服务接收与数据上报请求对应的批量业务相关数据,将各业务相关数据分别分发至缓存队列,基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果,将各序列化结果缓存至全局发送队列,并对全局发送队列中的序列化结果进行上报。采用本系统可以提升数据上报的上报效率。
Description
本申请要求于2021年05月17日提交中国专利局,申请号为202110534607.8、发明名称为“业务相关数据上报系统、方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别是涉及一种业务相关数据上报系统、方法及装置。
背景技术
随着科学技术的发展,计算机视觉(ComputerVision,CV)在有着广泛的应用,例如,计算机设备可通过计算机视觉技术对摄像头采集的视频流进行处理,以获得相关的数据,并将相关的数据上报至云平台,以基于云平台对相关的数据进行进一步的处理。
目前,一般通过客户端获取待上报至探测云平台的业务相关数据,并将获取得到的业务相关数据直接上报至探测云平台,这样,容易导致高峰阶段很快耗尽计算机资源,在空闲时又无法充分利用计算机资源,从而降低了业务相关数据上报的上报速率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升数据上报效率的业务相关数据上报系统、方法、装置、存储介质。
一种业务相关数据上报系统,包括客户端和服务端,其中:
客户端,用于收听业务服务,得到业务相关数据,并将所述业务相关数据存储至数据队列;
所述客户端,还用于在确定所述数据队列符合请求生成条件时,基于所述数据队列中批量的业务相关数据生成数据上报请求,并将所述数据上报请求发送至服务端;
所述服务端,用于在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;
所述服务端,还用于确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型,并将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;
所述服务端,还用于基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
所述服务端,还用于将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
一种业务相关数据上报方法,所述方法包括:
在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;
确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型;
将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;
基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
一种业务相关数据上报装置,所述装置包括:
批量数据接收模块,用于在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到。
序列化处理模块,用于确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型;将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果。
数据上报模块,用于将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
在一个实施例中,所述批量数据接收模块还包括服务筛选模块,用于当获取到数据上报请求时,从所述服务集群中过滤掉处于故障状态的探测服务;从过滤后所得到的探测服务中筛选出负载小于预设负载阈值的探测服务,作为目标探测服务;将所述数据上报请求转发至所述目标探测服务,以通过所述目标探测服务提取所述数据上报请求中的批量业务相关数据。
在一个实施例中,所述服务筛选模块还用于与所述服务集群中的每个探测服务建立心跳链路,并通过所述心跳链路向所述探测服务发送心跳包;当在预设响应周期内,未接收到所述探测服务通过所述心跳链路返回的心跳包时,确定所述探测服务为处于故障状态的探测服务。
在一个实施例中,所述批量数据接收模块还用于当确定目标探测服务时,通过中心服务查询所述目标探测服务的目标注册信息;其中,所述目标注册信息为所述目标探测服务向所述中心服务进行服务注册时,向所述中心服务发送的用于进行服务注册的数据;通过所述中心服务,并基于所述目标注册信息将所述数据上报请求转发至所述目标探测服务,以通过所述目标探测服务提取所述数据上报请求中的批量业务相关数据。
在一个实施例中,所述批量数据接收模块还用于当接收到客户端发送的数据上报请求时,确定所述服务集群中满足服务有效性的目标探测服务;所述数据上报请求是客户端在确定用于存储业务相关数据的数据队列符合请求生成条件时,基于所述数据队列中批量的业务相关数据生成的请求;其中,所述数据队列中存储的业务相关数据,为所述客户端在收听到业务服务生成业务相关数据时存储至的。在一个实施例中,所述序列化处理模块还包括指标类型确定模块,用于对于所述批量业务相关数据中的每个业务相关数据,均确定与当前业务相关数据相关联的目标业务服务;基于所述目标业务服务所对应的业务类型,确定所述当前业务相关数据所对应的指标类型。
在一个实施例中,所述序列化处理模块还用于对于多个缓存队列中的每个缓存队列,均在当前缓存队列符合批量数据处理条件时,提取所述当前缓存队列中的至少一个业务相关数据;通过分配至当前缓存队列的数据处理资源,对提取出的至少一个业务相关数据进行序列化处理,得到对应的序列化结果。
在一个实施例中,所述序列化处理模块还用于确定每个缓存队列各自对应的指标类型;根据所述指标类型,确定每个缓存队列所缓存的业务相关数据的数据特征;根据每个缓存队列所缓存的业务相关数据的数据特征,确定每个缓存队列应分配的数据处理资源;所述数据处理资源包括数据处理线程组。
在一个实施例中,所述数据上报模块还用于根据每个所述序列化结果各自对应的指标类型,确定所述全局发送队列中相应序列化结果的上报优先级;按照所述上报优先级,并基于分配的数据上报资源,上报所述序列化结果。
在一个实施例中,所述业务相关数据上报装置还用于当所述目标探测服务接收到批量业务相关数据时,通过所述目标探测服务将所述批量业务相关数据存储至数据库;当所述探测服务发生故障并丢失所述业务相关数据时,基于所述数据库中存储的业务相关数据进行数据恢复。
在一个实施例中,所述业务相关数据上报装置还用于确定所述目标探测服务接收所述批量业务相关数据的数据接收结果,并在所述数据接收结果表征接收失败时,确定接收失败的第一失败类型;所述第一失败类型生成第一回调信息,并将所述第一回调信息返回至所述客户端;其中,所述第一回调信息用于触发所述客户端基于所述第一失败类型重新发送所述数据上报请求;确定所述目标探测服务对所述缓存队列中的业务相关数据进行批量序列化处理的处理结果,并在所述并在所述处理结果表征处理失败时,确定处理失败的第二失败类型;根据所述第二失败类型生成第二回调信息,并将所述第二回调信息返回至所述客户端;其中,所述第二回调信息用于触发所述客户端基于所述第二失败类型重新发送所述数据上报请求。
在一个实施例中,所述业务相关数据上报装置还用于获取业务相关数据,业务相关数据是各业务服务对基于对目标场地进行管理时产生的目标任务的执行状态进行数据探测所得到;所述业务服务至少包括视觉检测服务、业务辅助服务、和资源管理服务中的一种;所述业务相关数据的指标类型至少包括视觉检测指标、任务执行结果指标、资源调用结果指标、可用资源指标中的一种类型。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;
确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型;
将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;
基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;
确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型;
将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;
基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上以下步骤:在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型;将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
上述业务相关数据上报系统、方法、装置、计算机设备、存储介质和计算机程序,通过对业务服务进行收听,可以得到业务相关数据,并基于批量的业务相关数据生成相应的数据上报请求。在服务端获取到数据上报请求时,通过确定服务集群中满足服务有效性的目标探测服务,可基于所确定的目标探测服务有效地接收批量业务相关数据,以提升批量业务相关数据的接收效率。通过确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,可基于指标类型将业务相关数据缓存至对应的缓存队列,如此,便可基于分配的数据上报资源,对相同类型的业务相关数据进行批量的序列化处理,从而不仅降低了对不同类型的业务相关数据进行频繁序列化处理的概率,而且由于是对同类型的数据进行批量处理,还可以提升序列化处理的处理效率。通过对业务相关数据进行序列化处理,可得到紧凑的序列化结果,通过将紧凑的序列化结果缓存至全局发送队列,可基于数据上报资源对紧凑的序列化结果进行上报,从而降低了数据上报时所耗费的计算机资源。相比于传统的将获取得到的业务相关数据直接上报至云平台,本申请通过部署探测服务集群、缓存队列和全局发送队列,可基于探测服务集群、缓存队列和全局发送队列,将批量业务相关数据异步发送至云平台,从而减少了高峰阶段很快耗尽计算机资源,在空闲时又无法充分利用计算机资源的概率,进而提升了业务相关数据的上报速率。
附图说明
图1为一个实施例中业务相关数据上报系统的应用环境图;
图2为一个实施例中业务相关数据恢复的示意图;
图3为一个实施例中基于线程池对序列化结果进行上报的示意图;
图4为一个实施例中路由数据上报请求的示意图;
图5为一个实施例中批量序列化处理的处理过程示意图;
图6为一个实施例中客户端异步上报数据上报请求的流程示意图;
图7为一个实施例中业务相关数据上报方法的流程示意图;
图8为一个具体实施例中业务相关数据上报方法的流程示意图;
图9为一个实施例中业务相关数据上报系统的整体架构示意图;
图10为一个实施例中业务相关数据上报装置的结构框图;
图11为另一个实施例中业务相关数据上报装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中业务相关数据上报系统的应用环境图。参照图1,该应用环境图中包括视频采集装置102、业务服务器104、计算机集群106和云服务器108。其中,视频采集装置102用于采集目标区域内的视频流,例如,采集商场入口处的视频流,并将采集得到的视频流发送至业务服务器104,以使业务服务器104对视频流进行处理。其中,业务服务器104中部署有客户端和多个不同类型的业务服务,通过多个不同类型的业务服务可得到不同指标类型的业务相关数据,例如,可通过客户端对视觉检测服务进行收听,得到视觉指标类型的业务相关数据。业务服务器104中的客户端还可在获取得到批量的业务相关数据时,将批量业务相关数据发送至计算机集群106(也就是服务端),以使计算机集群106按照业务相关数据上报方法,通过中心服务106-1和目标探测服务106-2将批量业务相关数据发送至云服务器108。其中,云服务器108中运行有云平台,用于对批量业务相关数据进行统计和图表化展示。其中,视频采集装置102、业务服务器104和计算机集群106均可位于同一局域网内。可以理解,上述应用环境图中部署在业务服务器中的客户端,以及通过计算机集群实现的服务端,共同构成本申请中的业务相关数据上报系统。
其中,视频采集装置102可以为枪机摄像机、球机摄像机等,并且可以部署多个。业务服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。计算机集群106可包括多个计算机设备,计算机设备可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,也可为物理服务器。
云服务可以基于云技术实现,云技术(Cloud technology)指的是在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。技术网络系统的后台服务需要大量的计算、存储资源,示意性的,视频的质检过程中,需要对视频进行存储、对视频中的不同关键视频片段进行人工智能计算。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)是指互联网技术(Internet Technology,IT)基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distri buted Com puting)、并行计算(Pa ra llel Com puting)、效用计算(UtilityComputing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
需要说明的是,本申请还涉及区块链。具体地,本申请可将业务相关数据存储于区块链中。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
在一个实施例中,提供了一种业务相关数据上报系统包括客户端和服务端,其中,客户端用于对目标任务的执行状态进行数据检测,得到业务相关数据,并将业务相关数据存储至数据队列;在确定数据队列符合请求生成条件时,基于数据队列中批量的业务相关数据生成数据上报请求,并将数据上报请求发送至服务端。服务端,用于在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与数据上报请求对应的批量业务相关数据;服务端,还用于确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,并将各业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;服务端,还用于基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;服务端,还用于将各序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对全局发送队列中的序列化结果进行上报。
下面针对客户端和服务端共同用于实现本申请中的业务相关数据上报方法的具体内容,分别进行详细的阐述:
对于客户端而言,客户端对目标任务的执行状态进行数据检测,得到业务相关数据,并将业务相关数据存储至数据队列;在确定数据队列符合请求生成条件时,基于数据队列中批量的业务相关数据生成数据上报请求,并将数据上报请求发送至服务端。
其中,业务相关数据指的是执行目标任务时产生的数据,其可以是对目标任务的执行状态进行数据探测而得到的数据。业务相关数据通过对业务服务进行收听而得,业务服务指的是用以执行目标任务、并对目标任务的执行状态进行探测的服务。例如,在对目标场地进行管理的场景下,当目标任务为确定进入目标场地的动物数量时,可在业务服务器中部署视觉检测服务、业务处理服务和资源管理服务,通过视觉检测服务对视频流进行聚类、提取动物特征、确定动物运动轨迹等,从而通过对视觉检测服务进行收听,可以得到动物检测框、动物特征、抓拍底图等数据;通过业务处理服务可存储动物运动轨迹、基于动物运动轨迹确定进入目标场地的动物数量等,从而通过对业务处理服务进行收听,可以得到进入目标场地的动物数量;通过资源管理服务可对业务服务器的计算机资源进行探测以及对各接口调用次数进行探测,从而通过对资源管理服务进行收听,可以得到接口调用次数、计算机资源剩余量等。其中,动物检测框、动物特征、抓拍底图、进入目标场地的动物数量、接口调用次数和计算机资源剩余量即为上述的业务相关数据。
容易理解的,业务服务器可以用独立的服务器或者是多个服务器组成的业务服务器集群来实现,当业务服务器通过多个服务器组成的业务服务器集群来实现时,可将多个业务服务分散至不同的服务器。其中,服务端可由计算机集群组成,计算机集群指的是一组相互独立的、且通过高速网络互连的计算机节点。计算机集群上部署有中心服务和服务集群,其中服务集群中包括有至少一个探测服务,也即服务端包括中心服务和探测服务。其中,中心服务指的是对探测服务进行管理的服务,探测服务指的是用以接收业务相关数据,并将业务相关数据发送至云平台的服务。容易理解的,不同的探测服务可部署于不用的计算机节点,也可部署于同一计算机节点。中心服务和探测服务可部署于同一计算机节点,可也部署于不同的计算机节点。本实施例在此不做限定。具体地,当客户端对业务服务进行收听,得到业务相关数据时,可将业务相关数据缓存至数据队列中。客户端实时确定数据队列是否满足请求生成条件,并在确定符合请求生成条件时,提取数据队列中批量的业务相关数据,基于批量的业务相关数据生成数据上报请求,并将数据上报请求发送至中心服务,以通过中心服务将数据上报请求路由至目标探测服务,并通过目标探测服务接收数据上报请求所携带的批量业务相关数据。其中,请求生成条件可根据需求自由设置,例如,可在数据队列所存储的数据量达到预设数据量阈值时,生成相应的数据上报请求;也可每隔预设时长,提取数据队列所缓存的全部的业务相关数据,并基于提取的业务相关数据生成数据上报请求。
在其中一个实施例中,可在业务服务器中部署用以获取业务相关数据的客户端,当业务服务执行目标任务时,可以通过客户端对业务服务的执行过程进行收听,得到业务相关数据时。当客户端确定收听得到的业务相关数据满足批量数据上报条件时,可生成相应的数据上报请求,并将数据上报请求发送至计算机集群中的中心服务,也即上报至服务端。
在其中一个实施例中,在数据队列符合请求生成条件时,客户端可提取数据队列中的批量业务相关数据,并生成每个业务相关数据各自对应的数据上报请求,通过多线程将数据上报请求发送至中心服务。当中心服务接收到的多线程发送的数据上报请求时,可从服务集群中筛选出至少一个用以接收数据上报请求的目标探测服务,并将数据上报请求路由至对应的目标探测服务。
上述实施例中,通过批量发送业务相关数据,可降低单个业务相关数据传输带来的的冗余数据开销,提高业务相关数据上报系统的吞吐量。
在一个实施例中,当业务服务器通过多个服务器组成的业务服务器集群来实现时,可分别在每个服务器中部署客户端以及相应的业务服务,并通过部署的客户端将对业务服务进行收听得到的批量业务相关数据发送至计算机集群。
在一个实施例中,可为每一个业务服务均设置一个客户端,从而对于多个客户端中的每个客户端,均可基于当前客户端对当前业务服务进行收听,得到相应的业务相关数据,并将对当前业务服务进行收听得到的业务相关数据缓存至数据队列,在数据队列所缓存的业务相关数据的数据量达到业务数据量阈值时,通过发送线程,并基于数据队列中的业务相关数据生成数据上报请求,将数据上报请求发送至计算机集群。其中,可通过令牌桶算法限制缓存至数据队列中的业务相关数据,当缓存至数据队列中的业务相关数据的数据量达到预设数据量阈值,令牌桶算法可触发发送线程提取数据队列中的批量业务相关数据,并将批量业务相关数据进行上报。容易理解地,多个客户端可对应于同一个计算机集群,也即可通过同一服务集群中的目标探测服务接收多个客户端发送的批量业务相关数据。
对于服务端而言,服务端在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与数据上报请求对应的批量业务相关数据;确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,并将各业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;将各序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对全局发送队列中的序列化结果进行上报。
其中,服务端在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与数据上报请求对应的批量业务相关数据。
当服务端中的中心服务接收到数据上报请求时,可确定服务集群中的满足服务有效性的目标探测服务,并将数据上报请求转发至目标探测服务,通过目标探测服务接收数据上报请求携带的批量业务相关数据。
在一个实施例中,当中心服务接收到数据上报请求时,可确定服务集群中的满足服务有效性的目标探测服务,并确定目标探测服务的传输地址,例如确定目标探测服务的IP地址和端口号,将目标探测服务的传输地址返回至客户端,从而客户端可根据接收到的传输地址,将待传输的批量业务数据发送至目标探测服务。
在一个实施例中,数据上报请求中可携带有批量业务相关数据和批量业务相关数据的数据量,当中心服务接收到数据上报请求时,中心服务可基于数据量、和服务集群中探测服务所在的计算机节点的可用资源,确定应筛选出的目标探测服务的目标服务数量,并从服务集群中筛选出目标服务数量的、且满足服务有效性的目标探测服务。例如,当批量业务相关数据的数据量较大,但服务集群中探测服务所在的计算机节点的可用资源较少时,即可从服务集群中筛选出较多数量的目标探测服务。进一步地,客户端可按照目标服务数量,将数据上报请求中携带的批量业务相关数据进行拆分,得到至少一个批量子数据,并将批量子数据分发至对应的目标探测服务。
在一个实施例中,服务端还用于:当目标探测服务接收到批量业务相关数据时,通过目标探测服务将批量业务相关数据存储至数据库;当探测服务发生故障并丢失业务相关数据时,基于数据库中存储的业务相关数据进行数据恢复。
具体地,当服务端中的目标探测服务接收到批量业务相关数据时,目标探测服务可将批量业务相关数据备份存储至数据库中,以便当目标探测服务因故障丢失业务相关数据时,可基于数据库进行业务相关数据的恢复。
在其中一个实施例中,参考图2,目标探测服务在收到批量业务相关数据后,可将批量业务相关数据缓存至缓存队列等待上报,并将批量业务相关数据备份至数据库中,从而当目标探测服务因中途故障或重启而丢失所缓存的业务相关数据时,可从数据库中读取丢失的业务相关数据。图2示出了一个实施例中,业务相关数据恢复的示意图。
在其中一个实施例中,目标探测服务可将业务相关数据以键值对(key-value)的形式存储至数据库中。其中,key可为业务相关数据的数据标识,value可为业务相关数据的具体数据内容。
上述实施例中,相比于直接将批量业务相关数据发送至云平台,本实施例通过在发送批量业务相关数据之前,对业务相关数据进行备份,可以减少因目标探测服务故障,批量业务相关数据丢失而造成的数据上报失败的概率。
进一步地,服务端还确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,并将各业务相关数据分别分发至与相应的指标类型所匹配的缓存队列。其中,对不同业务类型的业务服务进行收听,可得到不同指标类型的业务相关数据,例如,在对目标场地的场景中,通过对视觉检测服务进行收听得到的业务相关数据的指标类型可以为视觉检测指标类型,例如,动物检测框即为视觉检测指标类型的业务相关数据;通过对业务辅助服务进行收听得到的业务相关数据的指标类型可以为任务执行结果指标类型,例如进入目标场地的动物数量即为任务执行结果指标类型的业务相关数据;通过对资源管理服务进行收听得到的业务相关数据的指标类型可以为资源调用结果指标类型、和可用资源指标类型,例如,接口调用次数即为资源调用结果指标类型的业务相关数据,计算机资源剩余量即为可用资源指标类型的业务相关数据。容易理解地,本方案还可用于智慧零售场景中,比如,还可用于采集智慧零售场景中的视频流,对该视频流进行解析,得到与智慧零售场景相关的业务相关数据,比如得到人体检测框、人体运动轨迹、商场客流量等。
具体地,业务相关数据中携带有指标类型的类型标签,当服务端中的目标探测服务接收到批量业务相关数据时,目标探测服务可提取业务相关数据中的类型标签,并根据所提取的类型标签确定相应业务相关数据的指标类型。当目标探测服务确定批量业务相关数据中的每个业务相关数据时,目标探测服务可将各业务相关数据分别缓存至与相应的指标类型所匹配的缓存队列,例如,目标探测服务可将视觉检测指标类型的业务相关数据缓存至视觉检测指标队列,将任务执行结果指标类型的业务相关数据缓存至视觉检测指标队列,将资源调用结果指标类型的业务相关数据缓存至资源调用结果指标队列,以及将可用资源指标类型的业务相关数据缓存至可用资源指标队列。其中,缓存队列可为无锁队列。
在一个实施例中,在对业务服务进行收听,生成业务相关数据的过程中,客户端可基于所收听的业务服务的业务类型,生成相应指标类型的类型标签,并将指标类型的类型标签添加至收听得到的业务相关数据中。例如,对视觉检测服务进行收听的客户端可生成视觉检测指标类型标签,并将视觉检测指标类型标签添加至视觉检测数据中。其中,视觉检测数据包括动物检测框、动物特征、抓拍底图中的至少一种。
在一个实施例中,目标探测服务可通过分发器确定批量业务相关数据中的每个业务相关数据各自对应的指标类型。其中,分发器指的是用以确定每个业务相关数据各自对应的指标类型,并按照所确定的指标类型将业务相关数据分发至不同缓存队列的线程。可在每个探测服务中分别部署有分发器,例如,可在每个探测服务各自所在的计算机节点中分别部署分发器,也可部署多个探测服务共同对应的分发器,例如,也可在计算机集群中的除探测服务所在计算机节点之外的一个计算机节点中部署分发器。当探测服务中部署有分发器时,目标探测服务可通过调用分发器,来确定每个业务相关数据各自对应的指标类型;当分发器部署于除探测服务之外的计算机节点时,目标服务可将接收到的批量业务数据转发至分发器所在的计算机节点,从而分发器可确定每个业务相关数据各自对应的指标类型。
在一个实施例中,可为服务集群中的每个探测服务均设置一个缓存队列组,也可多个探测服务共用一个缓存队列组,本实施例在此不作限定。其中,缓存队列组指的是一组缓存队列,一组缓存队列中的不同缓存队列与不同的指标类型相匹配。
在一个实施例中,当计算机集群中部署有分发器时,可通过分发器按照各业务相关数据的指标类型,将各业务相关数据分发至对应的缓存队列。
在一个实施例中,服务端还用于对于批量业务相关数据中的每个业务相关数据,均确定与当前业务相关数据相关联的目标业务服务;基于目标业务服务所对应的业务类型,确定当前业务相关数据所对应的指标类型。
具体地,对于批量业务相关数据中的每个业务相关数据,服务端中的目标探测服务均确定与当前业务相关数据关联的目标业务服务,并确定目标业务服务所对应的业务类型,根据业务类型与指标类型之间的对应关系,确定当前业务相关数据所对应的指标类型,例如,在对属于视觉检测类型的目标业务服务进行收听,得到当前目标业务相关数据时,当前目标业务相关数据的指标类型即可为视觉检测指标类型。
在其中一个实施例中,当业务服务生成业务相关数据时,可在所生成的业务相关数据中添加业务类型标签,从而目标探测服务可根据业务类型标签、以及业务类型与指标类型之间的对应关系,确定当前业务相关数据的指标类型。
上述实施例中,通过确定与当前业务相关数据相关联的目标业务服务,可基于目标业务服务的业务类型,快速确定当前业务相关数据所对应的指标类型。
进一步地,服务端还基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果。
具体地,可为各缓存队列均分配相应的数据处理资源,从而对于多个缓存队列中的每个缓存队列,均在当前缓存队列符合批量数据处理条件时,通过服务端提取当前缓存队列中的至少一个业务相关数据,并基于分配至当前缓存队列的数据处理资源,对提取出的至少一个业务相关数据进行序列化处理,得到序列化结果。其中,序列化指的是将结构化数据转换为二进制序列的转换过程。结构化数据在生成过程中,往往需要进行内存补齐,从而导致所生成的结构化数据较大,进而导致需要较大的网络带宽来传输结构化数据,因此,为了降低网络带宽成本,可将结构化数据序列化为紧凑的二进制序列,从而减少了因不必要的数据上报而耗费传输资源的概率。
在一个实施例中,当确定缓存队列中所存储的业务相关数据达到业务数量阈值时,目标探测服务提取出缓存队列中的业务相关数据,并对提取出的业务相关数据进行序列化处理,得到对应的序列化结果。
在一个实施例中,在对缓存队列中的业务相关数据进行批量序列化处理之前,目标探测服务可判断待序列化的业务相关数据之中是否存在重复的业务相关数据。若存在,目标探测服务去除重复的业务相关数据,并对不重复的业务相关数据进行批量序列化处理。
在一个实施例中,当分发器部署于探测服务中时,可在计算机节点中部署每个探测服务各自对应的一组缓存队列,以及部署每个缓存队列各自对应的处理器,并为每个处理器分配相应的数据处理资源,从而处理器可基于分配至的数据处理资源,对相应缓存队列中的业务相关数据进行批量序列化处理。
在一个实施例中,当分发器部署于计算机集群中的除探测服务所在计算机节点之外的一个计算机节点时,可在部署有分发器的计算机节点中部署至一组缓存队列,以及部署每个缓存队列各自对应的处理器。部署有分发器的计算机节点可为每个处理器分配相应的数据处理资源,从而处理器可基于分配至的数据处理资源,对相应缓存队列中的业务相关数据进行批量序列化处理。
进一步地,服务端还将各序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对全局发送队列中的序列化结果进行上报。
具体地,当服务端中的目标探测服务获取得到序列化结果后,可将序列化结果缓存至全局发送队列,并通过为全局发送队列分配的数据上报资源,上报全局发送队列中的序列化结果。其中,全局发送队列可为无锁队列。
在一个实施例中,可为服务集群中的每个探测服务均设置一个对应的全局发送队列,多个探测服务也可共用一个全局发送队列。本实施例在此不作限定。
在一个实施例中,当多个探测服务共用一个全局发送队列时,可在计算机集群中设置一个全局发送队列,从而目标探测服务可将序列化结果发送至全局发送队列所在的目标计算机节点,以使目标计算机节点将序列化结果缓存至全局发送队列。目标计算机节点可为全局发送队列分配数据上报资源,并基于数据上报资源对全局发送队列中的序列化结果进行上报。其中,全局发送队列可与目标探测服务位于同一计算机节点,可也位于不同的计算机节点。
在一个实施例中,数据上报资源具体可为线程池中的线程。当需要进行数据上报时,目标探测服务可基于待上报的数据量,从线程池中动态申请多个线程,以进行多线程上报。通过部署线程池,可基于线程动态调度机制充分挖掘线程资源,从而大大提高了序列化结果上报的上报速率,进而提升了业务相关数据上报系统的整体性能。
在一个实施例中,参考图3,当接收到对各业务服务进行收听而得的业务相关数据时,例如,当接收到对视觉检测服务、业务辅助服务和资源管理服务进行收听而得的业务相关数据时,目标探测服务根据业务相关数据的指标类型,将业务相关数据缓存至对应的缓存队列,例如,将视觉检测指标类型的业务相关数据缓存至视觉检测指标队列,将任务执行结果指标类型的业务相关数据缓存至任务执行结果指标队列等。目标探测服务通过各缓存队列各自对应的数据处理资源,对业务相关数据进行批量序列化处理,得到序列化结果,并将序列化结果缓存至全局发送队列,从而可基于线程池中的多线线程,将全局发送队列中的序列化结果上报至云平台。图3示出了一个实施例中,基于线程池对序列化结果进行上报的示意图。
上述业务相关数据上报系统中,通过对业务服务进行收听,可以得到业务相关数据,并基于批量的业务相关数据生成相应的数据上报请求。在服务端获取到数据上报请求时,通过确定服务集群中满足服务有效性的目标探测服务,可基于所确定的目标探测服务有效地接收批量业务相关数据,以提升批量业务相关数据的接收效率。通过确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,可基于指标类型将业务相关数据缓存至对应的缓存队列,如此,便可基于分配的数据上报资源,对相同类型的业务相关数据进行批量的序列化处理,从而不仅降低了对不同类型的业务相关数据进行频繁序列化处理的概率,而且由于是对同类型的数据进行批量处理,还可以提升序列化处理的处理效率。通过对业务相关数据进行序列化处理,可得到紧凑的序列化结果,通过将紧凑的序列化结果缓存至全局发送队列,可基于数据上报资源对紧凑的序列化结果进行上报,从而降低了数据上报时所耗费的计算机资源。相比于传统的将获取得到的业务相关数据直接上报至云平台,本申请通过部署探测服务集群、缓存队列和全局发送队列,可基于探测服务集群、缓存队列和全局发送队列,将批量业务相关数据异步发送至云平台,从而减少了高峰阶段很快耗尽计算机资源,在空闲时又无法充分利用计算机资源的概率,进而提升了业务相关数据的上报速率。
此外,通过部署服务端,可通过服务端屏蔽云平台的上报逻辑,减少云平台直接暴露在外网的概率,从而大大提升了云平台的安全性。再者,通过将批量的业务相关数据发送至服务集群,相比于传统的客户端通过单线程将单个业务相关数据进行同步上报,本申请不仅可避免单线程发送瓶颈的问题,还可减少客户端上报业务相关数据的上报次数,从而提升业务相关数据上报的整体性能。
在一个实施例中,服务端包括中心服务和服务集群,所述服务集群包括至少一个探测服务,服务端的中心服务还用于:当获取到数据上报请求时,从服务集群中过滤掉处于故障状态的探测服务;从过滤后所得到的探测服务中筛选出负载小于预设负载阈值的探测服务,作为目标探测服务;将数据上报请求转发至目标探测服务,以通过目标探测服务提取数据上报请求中的批量业务相关数据。
具体地,当服务端的中心服务接收到客户端发送的数据上报请求时,中心服务过滤掉服务集群中处于故障状态的探测服务,以确定服务集群中处于正常状态的探测服务。中心服务确定每个处于正常状态的探测服务各自对应的负载情况,例如确定每个处于正常状态的探测服务所在的计算机节点的负载情况,并基于负载均衡条件,从处于正常状态的探测服务中筛选出目标探测服务。
在其中一个实施例中,中心服务可从处于正常状态的探测服务中筛选出目标数量的具有最低负载的目标探测服务。例如,中心服务可从处于正常状态的探测服务中筛选出两个具有最低负载的目标探测服务。
上述实施例中,通过从服务集群中过滤掉处于故障状态的探测服务,可以减少因目标探测服务故障而导致批量业务相关数据接收失败的概率。通过从过滤后所得到的探测服务中筛选出负载小于预设负载阈值的探测服务,作为目标探测服务,可以平衡服务集群中各探测服务所对应的负载,从而提升服务集群的整体性能。
在一个实施例中,服务端的中心服务还用于:与服务集群中的每个探测服务建立心跳链路,并通过心跳链路向探测服务发送心跳包;当在预设响应周期内,未接收到探测服务通过心跳链路返回的心跳包时,确定探测服务为处于故障状态的探测服务。
具体地,在服务端中的探测服务向中心服务注册成功时,中心服务可与服务集群中注册成功的探测服务建立心跳链路,并通过心跳链路定期向探测服务发送心跳包,以定期更新探测服务的状态。当在预设的响应周期内,探测服务向中心服务返回心跳包时,中心服务确定该探测服务处于正常状态;当在预设的响应周期内未接收到探测服务返回的心跳包时,中心服务确定该探测服务处于故障状态。
在其中一个实施例中,可在计算机集群中部署多个中心服务,各中心服务可定期将各探测服务的状态进行同步。
在其中一个实施例中,参考图4,待上报的业务相关数据的数据量一般较多,因此,在计算机集群初始化时,可在计算机集群中部署多个中心服务和服务集群,从而服务集群中的探测服务可向中心服务进行服务注册,各中心服务之间也可定期进行信息同步。中心服务定期向探测服务发送心跳包,以通过心跳包过滤故障探测服务,并将数据上报请求路由至处于正常状态的、且负载较低的目标探测服务。图4示出了一个实施例中路由数据上报请求的示意图。
上述实施例中,通过定期发送心跳包,可通过定期发送的心跳包实时确定探测服务的状态,从而可基于实时确定的状态,将数据上报请求路由至处于正常状态的目标探测服务中,如此,便提升了批量业务处理数据的接收成功率。
在一个实施例中,服务端的中心服务还用于:当确定目标探测服务时,查询目标探测服务的目标注册信息;其中,目标注册信息为目标探测服务向中心服务进行服务注册时,向中心服务发送的用于进行服务注册的数据;基于目标注册信息将数据上报请求转发至目标探测服务,以通过目标探测服务提取数据上报请求中的批量业务相关数据。
具体地,当需要将探测服务加入至服务集群时,服务端中的探测服务可获取自身的注册信息,并将注册信息发送至中心服务,以实现服务注册。其中,注册信息包括但不限于是端口号、IP地址、运行ID、可用资源等。
当从服务集群中筛选出已实现服务注册的目标探测服务时,中心服务可提取目标探测服务的目标注册信息,并根据目标注册信息将数据上报请求转发至目标探测服务。例如,中心服务可通过目标注册信息中的端口号和IP地址,将数据上报请求路由至目标探测服务,从而目标探测服务可提取数据上报请求中的批量业务相关数据。
在其中一个实施例中,在当前中心服务中未存储有目标探测服务的目标注册信息时,当前中心服务可发起信息同步请求,以通过信息同步请求与其余中心服务进行信息同步,并从同步后的信息中查找与目标探测服务对应的目标注册信息。
上述实施例中,通过进行服务注册,可基于服务注册信息将数据上报请求路由至对应的目标探测服务,从而可基于目标探测服务接收批量业务相关数据。
在一个实施例中,服务端还用于:对于多个缓存队列中的每个缓存队列,均在当前缓存队列符合批量数据处理条件时,提取当前缓存队列中的至少一个业务相关数据;通过分配至当前缓存队列的数据处理资源,对提取出的至少一个业务相关数据进行序列化处理,得到对应的序列化结果。
具体地,服务端中的目标探测服务可判断各缓存队列是否符合批量数据处理条件,并在确定当前缓存队列符合批量数据处理条件时,对当前缓存队列中的业务相关数据进行批量序列化处理。其中,批量数据处理条件可根据需求自由设置,例如,可在当前缓存队列中缓存的业务相关数据的数据量达到业务数据量阈值时,对当前缓存队列中的业务相关数据进行批量序列化处理。也可每隔预设时长,从当前的缓存队列中提取所缓存的业务相关数据,并对提取的业务相关数据进行批量序列化处理。
在其中一个实施例中,参考图5,当目标探测服务接收到批量业务相关数据时,可对批量业务相关数据进行延迟统计聚合处理,将不同指标类型的业务相关数据缓存至相应的缓存队列中,并每隔预设时长,对缓存队列中的业务相关数据进行批量序列化处理,得到二进制序列的序列化结果。图5示出了一个实施例中批量序列化处理的处理过程示意图。
本实施例中,由于缓存队列中存储有同一指标类型的业务相关数据,因此可对同一指标类型的业务相关数据进行批量序列化处理,从而提升序列化处理的处理效率。
在一个实施例中,服务端还用于确定每个缓存队列各自对应的指标类型;根据指标类型,确定每个缓存队列所缓存的业务相关数据的数据特征;根据每个缓存队列所缓存的业务相关数据的数据特征,确定每个缓存队列应分配的数据处理资源;数据处理资源包括数据处理线程组。
具体地,对于多个缓存队列中的每个缓存队列,服务端中的目标探测服务均确定当前缓存队列中所缓存的业务相关数据的指标类型,并将当前缓存队列中所缓存的业务相关数据的指标类型作为当前缓存队列的指标类型。进一步地,目标探测服务基于所确定的指标类型,确定当前缓存队列所缓存的业务相关数据的数据特征。其中,数据特征指的是用以描述数据特点的信息,例如,在当前业务相关数据为视觉检测指标类型时,可确定当前业务相关数据的数据量较大,上报至云平台时需要耗费较多的计算机资源;在当前业务相关数据为资源调用结果指标时,可确定当前业务相关数据的数据量较小,上报至云平台时需要耗费较少的计算机资源。
进一步地,目标探测服务根据每个缓存队列所缓存的业务相关数据的数据特征,动态为每个缓存队列分配相应体量的数据处理资源。其中,数据处理资源包括数据处理线程组。例如,在当前缓存队列缓存有视觉检测指标类型的业务相关数据时,由于视觉检测指标类型的业务相关数据的数据量较大,因此,可为当前缓存队列缓存分配具有较多线程数量的数据线程组;在当前缓存队列缓存有资源调用结果指标类型的业务相关数据时,可为当前缓存队列缓存分配具有较少线程数量的数据线程组。
本实施例中,通过根据数据特征,为不同缓存队列分配不同体量的数据处理资源,可基于动态分配的数据处理资源平衡各缓存队列的批量序列化处理过程,从而提升序列化处理的整体性能。
在一个实施例中,服务端还用于:根据每个序列化结果各自对应的指标类型,确定全局发送队列中相应序列化结果的上报优先级;按照上报优先级,并基于分配的数据上报资源,上报序列化结果。
具体地,目标探测服务可确定全局发送队列中每个序列化结果所对应的指标类型。对于多个序列化结果中的每个序列化结果,由于当前序列化结果是目标探测服务对当前业务相关数据进行序列化后所得到的结果,因此,可将当前业务相关数据的指标类型作为当前序列化结果的指标类型。
目标探测服务获取上报优先级与指标类型之间的对应关系,并根据各序列化结果各自对应的指标类型,确定各序列化结果各自对应的上报优先级,并按照所确定的上报优先级上报全局发送队列中的序列化结果。
上述实施例中,通过按照上报优先级对序列化结果进行上报,使得优先级高的序列化结果可以优先上报,优先级低的序列化结果可以暂缓上报。
在一个实施例中,上述数据上报请求通过客户端发送,服务端还用于:确定目标探测服务接收批量业务相关数据的数据接收结果,并在数据接收结果表征接收失败时,确定接收失败的第一失败类型;根据第一失败类型生成第一回调信息,并将第一回调信息返回至客户端;其中,第一回调信息用于触发客户端基于第一失败类型重新发送数据上报请求;确定目标探测服务对缓存队列中的业务相关数据进行批量序列化处理的处理结果,并在并在处理结果表征处理失败时,确定处理失败的第二失败类型;根据第二失败类型生成第二回调信息,并将第二回调信息返回至客户端;其中,第二回调信息用于触发客户端基于第二失败类型重新发送数据上报请求。
具体地,服务端中的中心服务可确定目标探测服务接收批量业务相关数据的数据接收结果,例如,确定目标探测服务成功接收批量业务相关数据,或者确定目标探测服务未能成功接收批量业务相关数据。当基于数据接收结果确定目标探测服务未能成功接收批量业务相关数据时,中心服务确定接收失败的第一失败类型,并根据第一失败类型生成第一回调信息,将第一回调信息返回至客户端。进一步地,当客户端接收到第一回调信息时,可根据第一回调信息中的第一失败类型,确定是否重新发送数据上报请求。例如,当客户端确定第一失败类型为不可恢复类型时,可以认为即使客户端重新发送数据上报请求,目标探测服务也无法成功接收批量业务相关数据,此时客户端暂停重新发送数据上报请求,当客户端确定第一失败类型为可恢复类型时,可以认为目标探测服务可通过客户端重新发送的数据上报请求,成功接收批量业务相关数据,此时客户端重新发送数据上报请求。
例如,目标探测服务不存在或者网络故障可对应于不可恢复类型,当中心服务无法筛选出目标探测服务、或者中心服务确定网络故障时,中心服务可生成相应的第一回调信息,从而客户端可基于第一回调信息暂停发送数据上报请求。带宽满或者超时处理可对应于可恢复类型,当中心服务确定目标探测服务的带宽已满,或者目标探测服务在预设时间内未能成功接收批量业务相关数据超时,中心服务可生成相应的第一回调信息,从而客户端可基于第一回调信息重新发送数据上报请求。
进一步地,当目标探测服务成功接收批量业务相关数据时,可对批量业务相关数据进行批量序列化处理,得到序列化结果。中心服务可实时探测目标探测服务的处理结果,并根据处理结果生成第二回调信息,例如,可在处理结果表征处理成功时,生成对应的第二回调信息。当中心服务基于处理结果确定目标探测服务批量序列化处理失败时,中心服务确定处理失败的第二失败类型,并根据第二失败类型生成第二回调信息,将第二回调信息返回至客户端,从而客户端可在基于第二回调信息确定第二失败类型为可恢复类型时,重新发送数据上报请求,在基于第二回调信息确定第二失败类型为不可恢复类型时,暂停发送数据上报请求。容易理解地,第一回调信息和第二回调信息可通过中心服务生成,也可通过目标探测服务生成。本实施例在此不作限定。
在其中一个实施例中,当中心服务确定目标探测服务的带宽已满,或目标探测服务在预设时间内未能成功接收批量业务相关数据超时,中心服务可将目标探测服务归为故障状态的探测服务,从而当中心服务接收到客户端重新发送的数据上报请求时,可将数据上报请求路由至其它处于正常状态的探测服务。
在一个实施例中,为了描述方便,下述将目标探测服务接收批量业务相关数据时所生成的回调信息称作第一回调信息,将目标探测服务对批量业务相关数据进行批量序列化处理时所生成的回调信息称作第二回调信息。参考图6,S602客户端可通过数据上报请求将批量业务相关数据异步上报至目标探测服务。S604客户端可生成回调接收线程,用以接收第一回调信息。S606客户端可通过第一回调信息确定目标探测服务是否成功接收批量业务数据。S608当客户端基于第一回调信息确定目标探测服务成功接收批量业务相关数据时,客户端通过回调接收线程继续接收第二回调信息;S610当客户端基于第一回调信息确定目标探测服务未能成功接收批量业务相关数据时,客户端通过第一回调信息确定接收失败的失败类型。S612客户端判断失败类型是否为可恢复类型,并在确定为可恢复类型时重新发送数据上报请求,确定为不可恢复类型时,退出数据上报请求的发送。S614中心服务可根据目标探测服务生成对批量业务相关数据进行批量序列化处理的处理过程进行探测,并根据序列化处理结果生成第二回调信息,将第二回调信息通过回调接收线程返回至客户端,从而客户端可根据第二回调信息判断目标探测服务是否已完成对业务相关数据的批量序列化处理。S616当确定目标探测服务已完成对业务相关数据的批量序列化处理时,客户端可判断批量序列化处理过程是否出错。客户确定第二回调信息中是否携带有处理失败的失败类型,当第二回调信息中携带有处理失败的失败类型时,可认为目标探测服务在对业务相关数据进行批量序列化处理的过程中出现错误,此时客户端根据处理失败的失败类型确定是否再次发送数据上报请求。S618客户端判断在预设时间段内是否接收到第二回调信息,并在未接收到第二回调信息时结束数据上报请求的发送。图6示出了一个实施例中客户端异步上报数据上报请求的流程图。
上述实施例中,通过回调机制来确定批量业务相关数据是否成功接收和处理,可在未成功接收批量业务相关数据以及未成功处理批量业务相关数据时,重新发送数据上报请求,如此,便可基于重新发送的数据上报请求提升批量业务相关数据的接收成功率和处理成功率。
在一个实施例中,业务相关数据是各业务服务对基于对目标场地进行管理时产生的目标任务的执行状态进行数据探测所得到;业务服务至少包括视觉检测服务、业务辅助服务、和资源管理服务中的一种;业务相关数据的指标类型至少包括视觉检测指标、任务执行结果指标、资源调用结果指标、可用资源指标中的一种类型。
具体地,当需要对目标场地进行管理时,可生成对应的目标任务,从而目标业务可执行目标任务,并对执行目标任务时所耗费的计算机资源以及计算机资源的使用情况进行探测,得到相应的业务相关数据。其中,目标场地指的是需要进行客流统计的地理区域,可以是用一个虚拟的围栏在商场、影院或旅游景点等目标场所围出的一个虚拟地理边界,也可以是由商场、影院或办公大楼等目标场所的外立面所围出的一个实体地理边界。相应的,目标任务可为对目标场地进行客流统计的统计任务。
为了执行目标任务,可对应部署多个业务服务,通过对部署的多个业务服务进行收听,得到相应的业务相关数据,并基于业务相关数据确定目标任务的执行结果以及目标任务执行过程中的执行状态。例如,可在业务服务器中部署视觉检测服务、业务辅助服务、和资源管理服务。其中,视觉检测服务指的是提供CV(ComputerVision,计算机视觉)计算逻辑的服务,例如可通过视觉检测服务提取视频流中的动物特征、对动物特征进行聚类、基于聚类后的动物特征进行目标检测、基于检测出的动物确定动物运动轨迹等。业务辅助服务指的是提供CV计算的中间结果和最终结果,并对中间结果以及最终结果进行存储的服务。例如,可通过业务辅助服务将动物图像进行存储、基于动物运动轨迹确定进入目标场地的动物数量,并将进入目标场地的动物数量对应存储等。资源管理服务指的用以对CV计算时所耗费的计算机资源进行探测以及对各接口调用情况进行探测的服务。例如,可通过资源管理服务确定GPU、CPU的使用率、磁盘剩余量以及各接口的调用次数等。
对不同业务类型的业务服务进行收听,可生成不同指标类型的业务相关数据。其中,业务相关数据的指标类型至少包括视觉检测指标、任务执行结果指标、资源调用结果指标、可用资源指标中的一种类型。其中,可通过对视觉检测服务进行收听,生成视觉检测指标类型的业务相关数据,例如,可通过对视觉检测服务进行收听,得到动物检测框数据、动物特征数据、特征聚类簇数据等。可通过对业务辅助服务进行收听,得到任务执行结果指标类型的业务相关数据,例如,可通过对业务辅助服务进行收听,得到流量数据等。可通过对资源管理服务进行收听,以生成资源调用结果指标类型的业务相关数据、和生成可用资源指标类型的业务相关数据,例如,可通过对资源管理服务进行收听,得到资源调用结果指标类型的接口调用次数、数据库操作次数、接口调用失败率等;通过对资源管理服务进行收听,得到可用资源指标类型的CPU使用率、GPU使用率和磁盘剩余量等。
本实施例中,通过部署不同业务类型的业务服务,可基于业务服务得到相应指标类型的业务相关数据,从而可将业务相关数据上报至云服务器,以使云服务器中的云平台对业务相关数据进行统计。
在一个实施例中,参考图7,提供了一种业务相关数据上报方法,应用于图1中的计算机集群106,包括以下步骤:
S702,在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与数据上报请求对应的批量业务相关数据;批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;
S704,确定批量业务相关数据中的每个业务相关数据各自对应的指标类型;
S706,将各业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;
S708,基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
S710,将各序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对全局发送队列中的序列化结果进行上报。
具体地,当计算机集群中的中心服务接收到数据上报请求时,中心服务可确定服务集群中满足服务有效性的目标探测服务,并将数据上报请求转发至目标探测服务,以通过目标探测服务接收与数据上报请求对应的批量业务相关数据。目标探测服务确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,并将各业务相关数据分别分发至相应的指标类型所匹配的缓存队列,基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到序列化结果。进一步地,目标探测服务将各序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对全局发送队列中的序列化结果进行上报。
上述业务相关数据上报系统中,在服务端获取到数据上报请求时,通过确定服务集群中满足服务有效性的目标探测服务,可基于所确定的目标探测服务有效地接收批量业务相关数据,以提升批量业务相关数据的接收效率。通过确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,可基于指标类型将业务相关数据缓存至对应的缓存队列,如此,便可基于分配的数据上报资源,对相同类型的业务相关数据进行批量的序列化处理,从而不仅降低了对不同类型的业务相关数据进行频繁序列化处理的概率,而且由于是对同类型的数据进行批量处理,还可以提升序列化处理的处理效率。通过对业务相关数据进行序列化处理,可得到紧凑的序列化结果,通过将紧凑的序列化结果缓存至全局发送队列,可基于数据上报资源对紧凑的序列化结果进行上报,从而降低了数据上报时所耗费的计算机资源。相比于传统的将获取得到的业务相关数据直接上报至云平台,本申请通过部署探测服务集群、缓存队列和全局发送队列,可基于探测服务集群、缓存队列和全局发送队列,将批量业务相关数据异步发送至云平台,从而减少了高峰阶段很快耗尽计算机资源,在空闲时又无法充分利用计算机资源的概率,进而提升了业务相关数据的上报速率。
在一个实施例中,将各序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对全局发送队列中的序列化结果进行上报,包括:根据每个序列化结果各自对应的指标类型,确定全局发送队列中相应序列化结果的上报优先级;按照上报优先级,并基于分配的数据上报资源,上报序列化结果。
具体地,服务端中的目标探测服务可确定全局发送队列中每个序列化结果所对应的指标类型。对于多个序列化结果中的每个序列化结果,由于当前序列化结果是目标探测服务对当前业务相关数据进行序列化后所得到的结果,因此,可将当前业务相关数据的指标类型作为当前序列化结果的指标类型。
目标探测服务获取上报优先级与指标类型之间的对应关系,并根据各序列化结果各自对应的指标类型,确定各序列化结果各自对应的上报优先级,并按照所确定的上报优先级上报全局发送队列中的序列化结果。例如,可优先上报可用资源指标类型的序列化结果,以基于优先上报的可用资源指标类型的序列化结果提醒管理人员当前计算机资源的使用情况,并在计算机资源不足时,及时进行扩容处理。容易理解的,当多个探测服务对应于一个全局发送队列时,全局发送队列所在的计算机节点可按照上报优先级对序列化结果进行上报。
在其中一个实施例中,可优先上报可用资源指标所对应的序列化结果,再上报任务执行结果指标所对应的序列化结果,接着上报资源调用结果指标所对应的序列化结果,最后上报视觉检测指标所对应的序列化结果。
在其中一个实施例中,当业务服务生成当前业务相关数据时,可将当前业务相关数据与相应的标准数据进行对比,以确定当前业务相关数据是否为告警数据,并在确定当前业务相关数据为告警数据时,为当前业务相关数据添加告警标签,从而目标探测服务可基于告警标签,确定当前业务相关数据所对应的指标类型为告警类型。例如,在当前业务服务基于当前业务相关数据确定计算机资磁盘已满时,可在当前业务相关数据中添加告警标签,又例如,在当前业务服务基于当前业务相关数据确定流量数据低于流量阈值时,比如,在进入羊圈的山羊数量小于预设山羊阈值时,可在当前业务相关数据中添加告警标签。在当前业务相关数据为告警数据时,目标探测服务可确定基于当前业务相关数据所生成的当前序列化结果的指标类型为告警类型,从而目标探测服务优先将告警类型的序列化结果上报至云平台。
上述实施例中,通过按照上报优先级对序列化结果进行上报,使得优先级高的序列化结果可以优先上报,优先级低的序列化结果可以暂缓上报。
在一个具体实施例中,参考图8,提供了一种业务相关数据上报方法,包括以下步骤:
S802,与服务集群中的每个探测服务建立心跳链路,并通过心跳链路向探测服务发送心跳包。
S804,当在预设响应周期内,未接收到探测服务通过心跳链路返回的心跳包时,确定探测服务为处于故障状态的探测服务。
S806,当接收到客户端发送的数据上报请求时,确定服务集群中满足服务有效性的目标探测服务;客户端用于在收听到业务服务生成业务相关数据时,将业务相关数据存储至数据队列;数据上报请求是客户端在确定数据队列符合请求生成条件时,基于数据队列中批量的业务相关数据生成的请求;业务相关数据是各业务服务对基于对目标场地进行管理时产生的目标任务的执行状态进行数据探测所得到。
S808,当确定目标探测服务时,通过中心服务查询目标探测服务的目标注册信息;其中,目标注册信息为目标探测服务向中心服务进行服务注册时,向中心服务发送的用于进行服务注册的数据。
S810,通过中心服务,并基于目标注册信息将数据上报请求转发至目标探测服务,以通过目标探测服务提取数据上报请求中的批量业务相关数据。
S812,当目标探测服务接收到批量业务相关数据时,通过目标探测服务将批量业务相关数据存储至数据库;当探测服务发生故障并丢失业务相关数据时,基于数据库中存储的业务相关数据进行数据恢复。
S814,对于批量业务相关数据中的每个业务相关数据,均确定与当前业务相关数据相关联的目标业务服务。
S816,基于目标业务服务所对应的业务类型,确定当前业务相关数据所对应的指标类型;将各业务相关数据分别分发至与相应的指标类型所匹配的缓存队列。
S818,对于多个缓存队列中的每个缓存队列,均在当前缓存队列符合批量数据处理条件时,提取当前缓存队列中的至少一个业务相关数据。
S820,通过分配至当前缓存队列的数据处理资源,对提取出的至少一个业务相关数据进行序列化处理,得到对应的序列化结果。
S822,根据每个序列化结果各自对应的指标类型,确定全局发送队列中相应序列化结果的上报优先级;按照上报优先级,并基于分配的数据上报资源,上报序列化结果。
上述业务相关数据上报方法中,通过在获取到数据上报请求时,确定服务集群中满足服务有效性的目标探测服务,可基于所确定的目标探测服务有效地接收批量业务相关数据,以提升批量业务相关数据的接收效率。通过确定批量业务相关数据中的每个业务相关数据各自对应的指标类型,可基于指标类型将业务相关数据缓存至对应的缓存队列,如此,便可基于分配的数据上报资源,对相同类型的业务相关数据进行批量的序列化处理,从而不仅降低了对不同类型的业务相关数据进行频繁序列化处理的概率,而且由于是对同类型的数据进行批量处理,还可以提升序列化处理的处理效率。通过对业务相关数据进行序列化处理,可得到紧凑的序列化结果,通过将紧凑的序列化结果缓存至全局发送队列,可基于数据上报资源对紧凑的序列化结果进行上报,从而降低了数据上报时所耗费的计算机资源。相比于传统的将获取得到的业务相关数据直接上报至云平台,本申请通过部署探测服务集群、缓存队列和全局发送队列,可基于探测服务集群、缓存队列和全局发送队列,将批量业务相关数据异步发送至云平台,从而减少了高峰阶段很快耗尽计算机资源,在空闲时又无法充分利用计算机资源的概率,进而提升了业务相关数据的上报速率。
本申请还提供一种应用场景,该应用场景应用上述的业务相关数据上报方法。具体地,该业务相关数据上报方法在该应用场景的应用如下:
参考图9,当需要确定进入目标场地的动物数量时,管理人员可预先在目标场地出入口处架设进场摄像头和出场摄像头,其中,进场摄像头用于采集动物进入目标场地时的视频流,出场摄像头用于采集动物离开商场时的视频流。业务服务器中部署有视觉检测服务,用于于从进场摄像头、出场摄像头和店摄像头中提取出视频流,并对视频流进行解码,得到多张图像帧,并从多张图像帧中筛选出包含有动物进场时的进场图像帧和动物出场时的出场图像帧。视觉检测服务分别对进场图像和出场图像帧进行动物检测,得到进场轨迹和出场轨迹,从而业务服务器中部署的业务辅助服务可将进场轨迹和出场轨迹对应存储,并基于进场轨迹和出场轨迹确定待处理视频中的动物进出目标场地的流量数据。在视觉检测服务和业务辅助服务确定流量数据的过程中,业务服务器可通过资源管理服务对业务服务器的计算机资源进行探测,得到CPU利用率、GPU利用率以及磁盘利用率。
进一步地,客户端可将视觉检测服务生成动物特征、动物轨迹,业务辅助服务生成的流量数据,资源管理服务生成的CPU利用率、GPU利用率以及磁盘利用率作为业务相关数据异步批量发送至中心服务,以使中心服务将批量业务相关数据路由至相应的目标探测服务。目标探测服务通过分发器确定批量业务相关数据中每个业务相关数据的指标类型,并根据指标类型将业务相关数据缓存至相应的缓存队列,从而可对缓存队列中的业务相关数据进行批量序列化处理,得到序列化结果。目标探测服务将序列化结果缓存至全局发送队列,并通过线程池中的多线程,将全局发送队列中的序列化结果上报至云服务器。图9示出了一个实施例中业务相关数据上报的整体架构示意图。
本申请还另外提供一种应用场景,该应用场景应用上述的业务相关数据上报方法。具体地,该业务相关数据上报方法在该应用场景的应用如下:
当需要对大型多层羊圈进行消杀时,视觉检测服务可获取山羊进出羊圈时产生的进场轨迹和出场轨迹,从而业务辅助服务可基于进场轨迹确定当天进入羊圈的数量,基于出场轨迹确定当前离开羊圈的数量。若进入羊圈的数量与离开羊圈的数量之间的差异大于或等于预设阈值时,可以认为进入羊圈的山羊还未全部离开羊圈,此时业务辅助服务生成相应的告警数据,并将告警数据发送至目标探测服务,以使目标探测服务优先将告警数据上报至云服务器,从而管理人员可通过云服务器确定当前羊圈还未全部离开,并前往羊圈促使山羊全部离开羊圈,从而后续可对羊圈进行全面的消毒处理,以免消毒液伤害山羊。
上述应用场景仅为示意性的说明,可以理解,本申请各实施例所提供的业务相关数据上报方法的应用不局限于上述场景。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
应该理解的是,虽然图2、8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种业务相关数据上报装置1000,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:批量数据接收模块1002、序列化处理模块1004和数据上报模块1006,其中:
批量数据接收模块1002,用于在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与数据上报请求对应的批量业务相关数据;批量业务相关数据基于对目标任务的执行状态进行数据探测所得到。
序列化处理模块1004,用于确定批量业务相关数据中的每个业务相关数据各自对应的指标类型;将各业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果。
数据上报模块1006,用于将各序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对全局发送队列中的序列化结果进行上报。
在一个实施例中,参考图11,批量数据接收模块1002还包括服务筛选模块1021,用于当获取到数据上报请求时,从服务集群中过滤掉处于故障状态的探测服务;从过滤后所得到的探测服务中筛选出负载小于预设负载阈值的探测服务,作为目标探测服务;将数据上报请求转发至目标探测服务,以通过目标探测服务提取数据上报请求中的批量业务相关数据。
在一个实施例中,服务筛选模块1021还用于与服务集群中的每个探测服务建立心跳链路,并通过心跳链路向探测服务发送心跳包;当在预设响应周期内,未接收到探测服务通过心跳链路返回的心跳包时,确定探测服务为处于故障状态的探测服务。
在一个实施例中,批量数据接收模块1002还用于当确定目标探测服务时,通过中心服务查询目标探测服务的目标注册信息;其中,目标注册信息为目标探测服务向中心服务进行服务注册时,向中心服务发送的用于进行服务注册的数据;通过中心服务,并基于目标注册信息将数据上报请求转发至目标探测服务,以通过目标探测服务提取数据上报请求中的批量业务相关数据。
在一个实施例中,批量数据接收模块1002还用于当接收到客户端发送的数据上报请求时,确定服务集群中满足服务有效性的目标探测服务;数据上报请求是客户端在确定用于存储业务相关数据的数据队列符合请求生成条件时,基于数据队列中批量的业务相关数据生成的请求;其中,数据队列中存储的业务相关数据,为客户端在收听到业务服务生成业务相关数据时存储至的。
在一个实施例中,序列化处理模块1004还包括指标类型确定模块1041,用于对于批量业务相关数据中的每个业务相关数据,均确定与当前业务相关数据相关联的目标业务服务;基于目标业务服务所对应的业务类型,确定当前业务相关数据所对应的指标类型。
在一个实施例中,序列化处理模块1004还用于对于多个缓存队列中的每个缓存队列,均在当前缓存队列符合批量数据处理条件时,提取当前缓存队列中的至少一个业务相关数据;通过分配至当前缓存队列的数据处理资源,对提取出的至少一个业务相关数据进行序列化处理,得到对应的序列化结果。
在一个实施例中,序列化处理模块1004还用于确定每个缓存队列各自对应的指标类型;根据指标类型,确定每个缓存队列所缓存的业务相关数据的数据特征;根据每个缓存队列所缓存的业务相关数据的数据特征,确定每个缓存队列应分配的数据处理资源;数据处理资源包括数据处理线程组。
在一个实施例中,数据上报模块1006还用于根据每个序列化结果各自对应的指标类型,确定全局发送队列中相应序列化结果的上报优先级;按照上报优先级,并基于分配的数据上报资源,上报序列化结果。
在一个实施例中,业务相关数据上报装置1000还用于当目标探测服务接收到批量业务相关数据时,通过目标探测服务将批量业务相关数据存储至数据库;当探测服务发生故障并丢失业务相关数据时,基于数据库中存储的业务相关数据进行数据恢复。
在一个实施例中,业务相关数据上报装置1000还用于确定目标探测服务接收批量业务相关数据的数据接收结果,并在数据接收结果表征接收失败时,确定接收失败的第一失败类型;第一失败类型生成第一回调信息,并将第一回调信息返回至客户端;其中,第一回调信息用于触发客户端基于第一失败类型重新发送数据上报请求;确定目标探测服务对缓存队列中的业务相关数据进行批量序列化处理的处理结果,并在并在处理结果表征处理失败时,确定处理失败的第二失败类型;根据第二失败类型生成第二回调信息,并将第二回调信息返回至客户端;其中,第二回调信息用于触发客户端基于第二失败类型重新发送数据上报请求。
在一个实施例中,业务相关数据上报装置1000还用于获取业务相关数据,业务相关数据是各业务服务对基于对目标场地进行管理时产生的目标任务的执行状态进行数据探测所得到;业务服务至少包括视觉检测服务、业务辅助服务、和资源管理服务中的一种;业务相关数据的指标类型至少包括视觉检测指标、任务执行结果指标、资源调用结果指标、可用资源指标中的一种类型。
关于业务相关数据上报装置的具体限定可以参见上文中对于业务相关数据上报方法的限定,在此不再赘述。上述业务相关数据上报装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务相关数据上报方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种业务相关数据上报系统,其特征在于,包括客户端和服务端,其中:
客户端,用于对目标任务的执行状态进行数据探测,得到业务相关数据,并将所述业务相关数据存储至数据队列;
所述客户端,还用于在确定所述数据队列符合请求生成条件时,基于所述数据队列中批量的业务相关数据生成数据上报请求,并将所述数据上报请求发送至服务端;
所述服务端,用于在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;
所述服务端,还用于确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型,并将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;
所述服务端,还用于基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
所述服务端,还用于将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
2.根据权利要求1所述的系统,其特征在于,所述服务端包括中心服务和服务集群,所述服务集群包括至少一个探测服务,所述服务端的中心服务用于:
当获取到数据上报请求时,从所述服务集群中过滤掉处于故障状态的探测服务;
从过滤后所得到的探测服务中筛选出负载小于预设负载阈值的探测服务,作为目标探测服务;
将所述数据上报请求转发至所述目标探测服务,以通过所述目标探测服务提取所述数据上报请求中的批量业务相关数据。
3.根据权利要求2所述的系统,其特征在于,所述服务端的中心服务还用于:
与所述服务集群中的每个探测服务建立心跳链路,并通过所述心跳链路向所述探测服务发送心跳包;
当在预设响应周期内,未接收到所述探测服务通过所述心跳链路返回的心跳包时,确定所述探测服务为处于故障状态的探测服务。
4.根据权利要求2所述的系统,其特征在于,所述服务端的中心服务还用于:
当确定目标探测服务时,查询所述目标探测服务的目标注册信息;其中,所述目标注册信息为所述目标探测服务向所述中心服务进行服务注册时,向所述中心服务发送的用于进行服务注册的数据;
基于所述目标注册信息将所述数据上报请求转发至所述目标探测服务,以通过所述目标探测服务提取所述数据上报请求中的批量业务相关数据。
5.根据权利要求1所述的系统,其特征在于,所述服务端还用于:
对于所述批量业务相关数据中的每个业务相关数据,均确定与当前业务相关数据相关联的目标业务服务;
基于所述目标业务服务所对应的业务类型,确定所述当前业务相关数据所对应的指标类型。
6.根据权利要求1所述的系统,其特征在于,所述服务端还用于:
对于多个缓存队列中的每个缓存队列,均在当前缓存队列符合批量数据处理条件时,提取所述当前缓存队列中的至少一个业务相关数据;
通过分配至当前缓存队列的数据处理资源,对提取出的至少一个业务相关数据进行序列化处理,得到对应的序列化结果。
7.根据权利要求6所述的系统,其特征在于,所述服务端还用于:
确定每个缓存队列各自对应的指标类型;
根据所述指标类型,确定每个缓存队列所缓存的业务相关数据的数据特征;
根据每个缓存队列所缓存的业务相关数据的数据特征,确定每个缓存队列应分配的数据处理资源;所述数据处理资源包括数据处理线程组。
8.根据权利要求1所述的系统,其特征在于,所述服务端还用于:
根据每个所述序列化结果各自对应的指标类型,确定所述全局发送队列中相应序列化结果的上报优先级;
按照所述上报优先级,并基于分配的数据上报资源,上报所述序列化结果。
9.根据权利要求1所述的系统,其特征在于,所述服务端还用于:
当所述目标探测服务接收到批量业务相关数据时,通过所述目标探测服务将所述批量业务相关数据存储至数据库;
当所述探测服务发生故障并丢失所述业务相关数据时,基于所述数据库中存储的业务相关数据进行数据恢复。
10.根据权利要求1所述的系统,其特征在于,所述服务端还用于:
确定所述目标探测服务接收所述批量业务相关数据的数据接收结果,并在所述数据接收结果表征接收失败时,确定接收失败的第一失败类型;
根据所述第一失败类型生成第一回调信息,并将所述第一回调信息返回至所述客户端;其中,所述第一回调信息用于触发所述客户端基于所述第一失败类型重新发送所述数据上报请求;
确定所述目标探测服务对所述缓存队列中的业务相关数据进行批量序列化处理的处理结果,并在所述并在所述处理结果表征处理失败时,确定处理失败的第二失败类型;
根据所述第二失败类型生成第二回调信息,并将所述第二回调信息返回至所述客户端;其中,所述第二回调信息用于触发所述客户端基于所述第二失败类型重新发送所述数据上报请求。
11.根据权利要求1至10任意一项所述的系统,其特征在于,所述业务相关数据是各业务服务对基于对目标场地进行管理时产生的目标任务的执行状态进行数据探测所得到;所述业务服务至少包括视觉检测服务、业务辅助服务、和资源管理服务中的一种;所述业务相关数据的指标类型至少包括视觉检测指标、任务执行结果指标、资源调用结果指标、可用资源指标中的一种类型。
12.一种业务相关数据上报方法,其特征在于,所述方法包括:
在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;
确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型;
将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;
基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
13.根据权利要求12所述的方法,其特征在于,所述将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报,包括:
根据每个所述序列化结果各自对应的指标类型,确定所述全局发送队列中相应序列化结果的上报优先级;
按照所述上报优先级,并基于分配的数据上报资源,上报所述序列化结果。
14.一种业务相关数据上报装置,其特征在于,所述装置包括:
批量数据接收模块,用于在获取到数据上报请求时,通过服务集群中满足服务有效性的目标探测服务接收与所述数据上报请求对应的批量业务相关数据;所述批量业务相关数据基于对目标任务的执行状态进行数据探测所得到;
序列化处理模块,用于确定所述批量业务相关数据中的每个业务相关数据各自对应的指标类型;将各所述业务相关数据分别分发至与相应的指标类型所匹配的缓存队列;基于各缓存队列相应分配的数据处理资源,分别对各缓存队列中的业务相关数据进行批量序列化处理,得到对应的序列化结果;
数据上报模块,用于将各所述序列化结果缓存至全局发送队列,并基于分配的数据上报资源,对所述全局发送队列中的序列化结果进行上报。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求12或13所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021105346078 | 2021-05-17 | ||
CN202110534607 | 2021-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115373811A true CN115373811A (zh) | 2022-11-22 |
Family
ID=84060637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111632184.XA Pending CN115373811A (zh) | 2021-05-17 | 2021-12-28 | 业务相关数据上报系统、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115373811A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905268A (zh) * | 2023-01-03 | 2023-04-04 | 北京力控元通科技有限公司 | 一种基于队列的电表数据处理方法、系统及电子设备 |
-
2021
- 2021-12-28 CN CN202111632184.XA patent/CN115373811A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905268A (zh) * | 2023-01-03 | 2023-04-04 | 北京力控元通科技有限公司 | 一种基于队列的电表数据处理方法、系统及电子设备 |
CN115905268B (zh) * | 2023-01-03 | 2023-09-29 | 北京力控元通科技有限公司 | 一种基于队列的电表数据处理方法、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Firework: Data processing and sharing for hybrid cloud-edge analytics | |
WO2020147331A1 (zh) | 一种微服务监控方法及系统 | |
US6718361B1 (en) | Method and apparatus for reliable and scalable distribution of data files in distributed networks | |
CN102891868B (zh) | 一种分布式系统的负载均衡方法及装置 | |
CN108062243B (zh) | 执行计划的生成方法、任务执行方法及装置 | |
CN101006727B (zh) | 分布式多媒体服务器系统和多媒体信息发布方法 | |
CN108259554A (zh) | 网络实体在监视代理之中的动态分配 | |
US20180145871A1 (en) | Systems and methods for providing a notification system architecture | |
CN110071965B (zh) | 一种基于云平台的数据中心管理系统 | |
CN110740293A (zh) | 一种数据传输方法、系统、装置及计算机存储介质 | |
CN111479095B (zh) | 一种业务处理控制系统、方法及装置 | |
US20200389517A1 (en) | Monitoring web applications including microservices | |
Buyakar et al. | Prototyping and load balancing the service based architecture of 5G core using NFV | |
CN115373811A (zh) | 业务相关数据上报系统、方法及装置 | |
CN110601891B (zh) | 一种报警处理的方法以及相关装置 | |
CN110324262A (zh) | 一种资源抢占的方法及装置 | |
CN111258760A (zh) | 一种平台管理方法、系统、装置及存储介质 | |
US10205630B2 (en) | Fault tolerance method for distributed stream processing system | |
Graubner et al. | Opportunistic named functions in disruption-tolerant emergency networks | |
Jalili Marandi et al. | Ring Paxos: High-throughput atomic broadcast | |
CN112632124B (zh) | 多媒体信息获取方法、装置、系统、存储介质及电子装置 | |
US20190297131A1 (en) | System and Method for Querying and Updating a Live Video Stream Using a Structured Query Language | |
Hammoudi et al. | A new Infrastructure as a Service for IoT-Cloud | |
WO2017215415A1 (zh) | 一种资源控制方法、装置和iptv服务器 | |
CN117354312A (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 |