CN115550354A - 一种数据处理方法、装置及计算机可读存储介质 - Google Patents
一种数据处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115550354A CN115550354A CN202110656764.6A CN202110656764A CN115550354A CN 115550354 A CN115550354 A CN 115550354A CN 202110656764 A CN202110656764 A CN 202110656764A CN 115550354 A CN115550354 A CN 115550354A
- Authority
- CN
- China
- Prior art keywords
- service
- server
- data
- working
- node
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 264
- 238000000034 method Methods 0.000 claims abstract description 167
- 230000008569 process Effects 0.000 claims description 129
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 abstract description 16
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 33
- 238000003058 natural language processing Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 11
- 230000015654 memory Effects 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000005111 flow chemistry technique Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/32—Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置及计算机可读存储介质,方法包括:获取目标业务的数据处理请求,该数据处理请求携带有待处理数据,待处理数据包括实时产生的流式信号数据;调用第一服务器的第一工作节点对该待处理数据执行目标业务的第一业务流程对应的处理操作,得到中间处理结果;根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向所述多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,可以应用在基于大数据技术的数据计算场景中,可以实现实时数据流的高效处理,并且业务流程可以高度定制化,可扩展性强。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置及计算机可读存储介质。
背景技术
人工智能(Artificial Intelligence,AI)业务的分布式并行计算系统中的数据流处理流程,通常是典型的计算密集型处理过程,一直难以理解和实施,对开发人员要求很高。目前一般借助于复杂的外部控制、管理和监控框架,如大数据处理领域的spark和storm,来控制整个数据流的计算过程,具体可以是构建一个复杂的数据流计算和处理的管理平台,并且为每种业务实现一个计算的流程,将实现的任务托管到系统当中,系统记录和监控数据处理的每个过程,并且根据数据的处理结果进行优化。
然而,不论是spark还是storm,对编程开发人员的要求都比较高,由于每个业务都是新的数据处理过程,每当有新的业务,都需要进行定制化的开发,现有的数据流计算平台需要把大量的资源和时间放在调节和优化系统参数当中,数据处理能力受限,效率较低,并且存在较多的组件依赖和环境依赖,可扩展性差。可见,如何增强数据流计算平台的可扩展性,并满足实时数据流的高效处理已成为亟待解决的问题。
发明内容
本申请实施例提供一种数据处理方法、装置及计算机可读存储介质,可以实现实时数据流的高效处理,并且业务流程可以高度定制化,可扩展性强。
第一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
获取目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据。
调用第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理所述第一业务流程的工作节点。
根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
第二方面,本申请实施例提供了一种数据处理装置,所述装置包括:
获取模块,用于获取目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据。
处理模块,用于调用第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理所述第一业务流程的工作节点。
发送模块,用于根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
第三方面,本申请实施例提供了一种服务器,所述服务器包括处理器、网络接口和存储装置,所述处理器、网络接口和存储装置相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行第一方面所述的数据处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行第一方面所述的数据处理方法。
第五方面,本申请实施公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面所述的数据处理方法。
本申请实施例中,每个服务器上可以运行有一个或多个工作节点,每个工作节点用于处理目标业务的某个业务流程,第一服务器获取目标业务的数据处理请求,数据处理请求携带有待处理数据,待处理数据包括实时产生的流式信号数据,可以调用处理目标业务的第一业务流程的第一工作节点对待处理数据执行第一业务流程对应的处理操作,得到中间处理结果,并根据第一业务流程的下一个业务流程,向第二服务器发送中间处理结果,使得第二服务器调用处理该下一个业务流程的第二工作节点,对中间处理结果执行该下一个业务流程对应的处理操作,从而可以通过调用各个服务器的计算资源高效地完成目标业务的各个业务流程,得到最终处理结果,并且业务的具体业务流程可以高度定制化,可扩展性强。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种业务处理系统的架构示意图;
图2是本申请实施例提供的一种系统整体设计框架的示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的另一种数据处理方法的流程示意图;
图5a是本申请实施例提供的一种业务处理的整体流程示意图;
图5b是本申请实施例提供的一种实现工作节点注册服务的示意图;
图5c是本申请实施例提供的一种工作节点内部的数据处理过程的示意图;
图5d是本申请实施例提供的一种单个业务处理流程的示意图;
图6是本申请实施例提供的一种数据处理装置的结构示意图;
图7是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,都需要通过云计算来实现。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是区块链等其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
本申请实施例主要涉及云技术领域的云计算和大数据技术,可以用于实时的信号流(如语音信号、视频信号等)的高效处理,以下对本申请的具体实施方式进行详细介绍。
请参见图1,是本申请实施例提供的一种业务处理系统的架构示意图,该业务处理系统10可以是分布式的数据处理系统,具体可以包括一个或多个服务器101。其中:
业务处理系统10中的一个或多个服务器101可以与终端设备20进行数据交互,例如终端设备20可以向业务处理系统10提交待处理数据,待处理数据可以是实时动态产生的流式信号数据,例如语音流数据、视频流数据等。业务处理系统10可以对待处理数据执行数据处理,以实现相关的业务,例如可以对语音流数据执行语音识别的业务,或者,对视频流数据执行图像识别(如人脸识别)的业务。
其中,数据处理的具体流程可以与业务相关,例如语音识别业务可以包括语音识别(Automatic Speech Recognition,ASR)、自然语言处理(Natural LanguageProcessing,NLP)、语音合成(Text-To-Speech,TTS)这三个业务流程。
具体的,每个服务器101上可以运行有一个或多个工作节点(记为worker或者job),每个worker是对某一单个功能的实际业务操作的抽象化描述,用于处理业务中的某个流程。例如语音识别业务包括ASR、NLP、TTS这三个业务流程,则可以将ASR、NLP、TTS这三个业务流程中的每个业务流程抽象成一种类型的worker,例如ASR worker、NLP worker、TTS worker,其中,ASR worker是指负责处理ASR这一业务流程的worker,NLP worker是指负责处理NLP这一业务流程的worker,TTS worker是指负责处理TTS这一业务流程的worker。
如图2所示,为本申请实施例提供的一种系统整体设计框架。主要包括:引擎服务管理组件30(可记为Muduo+Server),每个业务配置的业务流程处理管道(pipeline),图2中的服务(service)1、服务2、服务3可以分别视为不同的业务,每个业务的业务流程可以是不同的worker之间的自由组合,即不同的服务对应不同的worker组,服务1对应的业务由worker组40包括的各个worker进行处理,服务2对应的业务由worker组50包括的各个worker进行处理,服务3对应的业务由worker组60包括的各个worker进行处理。可以看出,组合的worker共同实现对应业务,其中,worker的顺序、种类、个数等均可以灵活定制。例如,服务2对应业务的处理由包括worker 1、worker 2、worker 4共三个worker的worker组50来完成,且执行顺序为先是worker 1,再是worker 2,最后是worker 4,worker 1、worker2、worker 4之间可以是同类型的worker,即实现同一个业务流程;当然,也可以是不同类型的worker,即各自实现不同的业务流程。各个worker的运行位置可以灵活分配,例如将用于实现某个业务的各个worker配置在同一台服务器101上,或者配置在不同的服务器101上,本发明实施例不做限定。
以配置在不同的服务器101上为例,假设服务2对应业务是语音识别业务,处理流程包括的worker 1、worker 2、worker 4分别为ASR worker、NLP worker、TTS worker,则可以选择将worker 1、worker 2、worker 4分别配置在不同的服务器101上,也即是一个服务器101负责语音识别业务的其中一个业务流程的处理,根据语音识别业务的业务流程的处理顺序,worker 1所在的服务器对数据进行ASR处理完毕后,将第一处理结果发送给worker2所在的服务器,worker 2所在的服务器对接收的第一处理结果进行NLP处理,处理完毕后,将第二处理结果发送给worker 4所在的服务器,worker 4所在的服务器对接收的第二处理结果进行TTS处理,处理完毕后得到语音识别业务的最终结果。
当然,服务1、服务2、服务3也可以对应同一个业务,也即是说同一个业务存在多种工作模式,服务1、服务2、服务3各自代表一种工作模式,不同工作模式下该业务的处理流程不同,并可以根据用户需求在不同的工作模式之间进行自由切换。
其中,服务器101可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备20可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载智能终端等,但并不局限于此。终端设备20以及服务器101可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
可以看出,通过本申请实施例提供的业务处理系统以及系统整体设计框架,可以将单个功能的实际业务操作抽象化描述为工作节点worker,同一台服务器上配置的一个或多个worker可以是同类型的,也可以是不同类型的,并且在符合业务逻辑的情况下,可以自由设计一个业务需要使用的worker数量以及worker之间的执行顺序,从而可以在服务器上灵活配置用于处理业务的各个业务流程的工作节点(worker),并且worker可以进行自由组合,使得业务的具体业务流程可以高度定制化,能够方便的对系统进行适配以适应新的业务场景,可扩展性强。
请参见图3,是本申请实施例基于图1所示的业务处理系统提供的一种数据处理方法的流程示意图。该业务处理系统包括多个服务器,该数据处理方法可以应用于上述多个服务器中的第一服务器,该方法具体包括如下步骤:
301、获取目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据。
具体的,第一服务器可以接收终端设备发送的目标业务的数据处理请求,或者接收其他服务器发送的目标业务的数据处理请求。其中,第一服务器为业务处理系统包括的多个服务器中的任意一个。
302、调用第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理所述第一业务流程的工作节点。
其中,第一服务器上运行有一个或多个工作节点(即上述的worker),每个工作节点用于处理目标业务的某个业务流程。
具体的,第一服务器获取到目标业务的数据处理请求之后,可以获取数据处理请求中携带的待处理数据,待处理数据具体可以是目标业务的第一业务流程需处理的数据,第一业务流程是目标业务包括的多个业务流程中当前需要执行的业务流程。如果第一业务流程是目标业务的第一个业务流程,则待处理数据可以是终端设备实时上传的待处理数据,例如实时动态产生的流式信号数据,包括终端设备实时上传的语音流数据或者视频流数据,等等;如果第一业务流程不是目标业务的第一个业务流程,则待处理数据可以是第一业务流程的上一个业务流程进行数据处理得到的中间处理结果。第一服务器从自身运行的一个或多个工作节点中确定出用于处理目标业务的第一业务流程的工作节点(记为第一工作节点),然后调用第一工作节点对待处理数据执行第一业务流程对应的处理操作,即可得到第一业务流程对应的中间处理结果。
在一些可行的实施方式中,目标业务可以包括语音识别业务,语音识别业务的业务流程可以包括语音识别ASR、自然语言处理NLP和语音合成TTS中的一个或多个。
在一些可行的实施方式中,第一工作节点上有运行线程池,线程池包括多个工作线程,第一服务器具体可以调用第一工作节点上的多个工作线程对待处理数据并行执行目标业务的第一业务流程对应的处理操作,从而得到中间处理结果,中间处理结果是指数据经当前业务流程处理后得到的结果,并作为输入数据交由下一个业务流程继续处理,如果当前业务流程为最后一个业务流程,则该中间处理结果即为业务的最终处理结果。例如,目标业务为语音识别业务,具体包括语音识别ASR、自然语言处理NLP、语音合成TTS这三个业务流程,且执行顺序为ASR—>NLP—>TTS,第一业务流程为ASR,第一工作节点上运行的线程池包括3个工作线程1、2、3,则可以由第一工作节点的工作线程1、2、3分别对待处理数据不同的部分进行语音识别处理,假设待处理数据是长度为300ms的语音数据,则可以将300ms的语音数据划分为3个部分,每个部分为100ms的语音数据,工作线程1、2、3可以分别对100ms的语音数据进行并发地语音识别处理,得到各自的识别结果,将各自的识别结果组合后作为语音识别流程对应的处理结果(即为中间处理结果),并将中间处理结果作为输入数据传输给下一个业务流程(即自然语言处理NLP)对应的工作节点进行数据处理。通过在worker内部引入线程池,在并发场景下能够实现计算和通信的并行,可以充分利用计算资源,提升资源的有效利用率,计算和通信并行,保证系统对于业务处理的高效性。
303、根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向所述多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
具体的,第一服务器可以获取第一业务流程的下一个业务流程,并根据该下一个业务流程向多个服务器中的第二服务器发送该中间处理结果,使得第二服务器调用用于处理该下一个业务流程的第二工作节点,对中间处理结果进行处理,每个服务器采用同样的方式进行数据处理以及处理结果的传递,从而可以高效地完成目标业务的全部业务流程,得到最终的处理结果。第二服务器在接收到第一服务器发送的第一业务流程对应的中间处理结果之后,可以根据第一业务流程的下一个业务流程确定工作节点类型,然后从自身运行的一个或多个工作节点中确定与该工作节点类型匹配的第二工作节点,然后即可调用第二工作节点对该中间处理结果执行相应的处理操作。例如,第一业务流程为ASR,第一业务流程的下一个业务流程为NLP,则第二服务器在接收到ASR对应的中间处理结果之后,找出自身运行的用于处理NLP业务流程的第二工作节点,并利用第二工作节点对该中间处理结果执行NLP处理。
在一些可行的实施方式中,第一服务器在得到中间处理结果之后,可以先确定第一业务流程是否为目标业务的最后一个业务流程,如果不是最后一个业务流程,则将中间处理结果发送给第二服务器;如果是最后一个业务流程,则不再将中间处理结果发送给第二服务器,并可以将中间处理结果作为最终的处理结果。
本申请实施例中,每个服务器上可以运行有一个或多个工作节点,每个工作节点用于处理目标业务的某个业务流程,在获取到目标业务的数据处理请求之后,第一服务器可以获取数据处理请求中携带的待处理数据,调用处理目标业务的第一业务流程的第一工作节点对待处理数据进行处理,得到中间处理结果,并根据第一业务流程的下一个业务流程,向第二服务器发送中间处理结果,使得第二服务器调用处理该下一个业务流程的第二工作节点对中间处理结果进行处理,从而可以通过调用各个服务器的计算资源高效地完成目标业务的各个业务流程,得到处理结果,并且业务的具体业务流程可以高度定制化,可扩展性强。
请参见图4,是本申请实施例基于图1所示的业务处理系统提供的另一种数据处理方法的流程示意图。该数据处理方法可以应用于服务器,该方法具体包括如下步骤:
401、获取第一服务器的服务配置数据。
其中,每个服务器上还运行有引擎服务管理组件(或称为引擎框架主程序)。
具体的,针对目标业务的各个业务流程,用户可以自由定制设计,并可以将处理各个业务流程的工作节点灵活分配,例如可以集中到一个服务器上,也可以分散到多个服务器上。第一服务器可以获取针对第一服务器的服务配置数据,服务配置数据可以用于配置第一服务器上启动的工作节点的数量以及各个工作节点对应处理的业务流程。
402、调用所述引擎服务管理组件根据所述服务配置数据启动一个或多个工作节点,并配置每个工作节点处理的业务流程,所述每个工作节点处理的业务流程为目标业务包括的多个业务流程中的其中一个。
具体的,第一服务器可以启动引擎服务管理组件,并调用引擎服务管理组件对服务配置数据进行解析,以确定启动的工作节点的数量以及各个工作节点对应处理的业务流程等关键数据,根据该关键数据启动对应数量的一个或多个工作节点,并配置每个工作节点处理的业务流程。
其中,可以向用户提供配置工作节点的功能(即对应处理的业务流程)的模板文件,用户将开发的具有相应业务流程的数据处理功能的程序代码添加到模板文件中,并将添加程序代码的模板文件携带在服务配置数据中,第一服务器根据模板文件中添加的程序代码,通过调用引擎服务管理组件启动并配置具有相应的业务流程处理能力的工作节点,各个工作节点通过运行模板文件中携带的相应业务流程对应的程序代码,实现对应的业务处理能力。针对语音识别业务,用户可以分别开发出具有语音识别ASR、自然语言处理NLP、语音合成TTS处理能力的三种程序代码,将不同类型的程序代码添加到模板文件中,并作为配置数据分发给对应的服务器,各个服务器根据模板文件中添加的程序代码,通过调用引擎服务管理组件启动并配置具有相应的业务流程处理能力的工作节点。以将用于实现语音识别业务的各类型worker配置在不同的服务器上为例,服务器1可以根据具有语音识别ASR处理能力的程序代码启动ASR类型的工作节点,服务器2可以根据具有自然语言处理NLP处理能力的程序代码启动NLP类型的工作节点,服务器3可以根据具有语音合成TTS处理能力的程序代码启动TTS类型的工作节点,以实现不同类型的工作节点的分布式配置。
在一些可行的实施方式中,在第一服务器的工作节点配置完成后,如果用户想要进行修改,则第一服务器可以获取服务更新数据,并可以调用引擎服务管理组件对服务更新数据进行解析,根据解析结果对第一服务器的工作节点进行调整操作,调整操作包括新增工作节点、删除工作节点和调整工作节点处理的业务流程中的一种或多种,可以看出,允许用户灵活的对工作节点的数量、功能等进行调整,提升通用性。
在一些可行的实施方式中,如果目标业务在短时间内并发的数据处理请求过多,则可以对服务器上工作节点的数目进行自动化水平扩展。具体可以包括:预设时长内获取到的数据处理请求的数量达到数量阈值,例如1秒内获取到的数据处理请求的数量达到数量阈值,数量阈值可以是10,当然也可以是其他数值,则可以调用引擎服务管理组件根据之前获取的服务配置数据启动至少一个新的工作节点(记为第三工作节点),并配置每个第三工作节点处理的业务流程,例如服务器上运行的是ASR类型的工作节点,则可以自动获取在配置阶段得到的与ASR类型相关的服务配置数据,并根据该服务配置数据启动至少一个ASR类型的工作节点,从而通过对工作节点的自动扩展可以动态的进行工作节点的扩展,满足实时的业务数据处理需求。
在一些可行的实施方式中,如果存在空闲的工作节点或者空闲的工作节点数量较多,则可以对服务器上工作节点的数目进行自动化压缩,例如关闭这类工作节点。具体可以包括:如果某个工作节点的空闲时间较长,例如空闲时间达到时长阈值,时长阈值可以是1分钟,当前也可以是其他数值,则可以关闭该工作节点;或者,如果同类型的工作节点中空闲的工作节点的数量占比达到预设比值,例如,预设比值可以为50%,当然也可以是其他数值,服务器上ASR类型的工作节点一共有5个,处于空闲状态的ASR类型的工作节点有3个,则ASR类型的工作节点中空闲的工作节点的数量占比为60%,达到了预设比值50%,则可以将空闲的3个工作节点全部关闭或者部分关闭,从而通过对工作节点的自动压缩可以节省服务器的软硬件资源的非必要占用,以保证处于工作状态的工作节点的资源分配,也有助于降低功耗。
在一些可行的实施方式中,服务配置数据还可以携带有对各个工作节点的线程池的配置数据,具体可以根据服务配置数据确定每个工作节点的线程池的特征数据,特征数据包括工作线程的数量以及占用的资源量,通过调用引擎服务管理组件根据每个工作节点的线程池的特征数据,在每个工作节点上启动对应的线程池,线程池可以包括一个或多个工作线程,线程池包括的工作线程用于处理对应的业务流程,便于对系统的性能进行优化,可以根据运行环境充分利用服务器的CPU等硬件资源的计算能力。
在一些可行的实施方式中,如图5a所示,某一业务的业务流程由工作节点1(即worker 1)501和工作节点2(即worker 2)502来处理,则worker 1、worker 2启动后可以先进行服务注册Register,数据可以是请求队列的形式enqueue data等待处理,worker 1和worker 2内部的线程池分别包括一个主线程503(即main thread)以及多个工作线程504(即Thread 1、Thread 2、……、Thread n),具体是每个worker将数据队列505中的数据添加到自己的任务队列506中,并利用工作线程504对任务队列506中的数据进行并行处理。
403、调用所述引擎服务管理组件向所述多个服务器中的其他服务器发送所述第一服务器的第一节点注册信息。
404、接收所述其他服务器发送的第二节点注册信息。
具体的,每个服务器上还运行有服务注册中心(如zookeeper),每个工作节点启动后,需要向服务注册中心进行注册。对于第一服务器,可以通过调用服务注册中心获取第一服务器上每个工作节点的注册数据,注册数据包括每个工作节点处理的业务流程以及节点标识,根据每个工作节点的注册数据生成第一服务器的节点注册信息(记为第一节点注册信息),节点注册信息用于指示第一服务器上启动的工作节点的数量以及每个工作节点对应处理的业务流程。第一服务器可以调用引擎服务管理组件向其他服务器发送自身的第一节点注册信息。
在一些可行的实施方式中,工作节点的注册服务的实现可以参见图5b。借助zookeeper进行工作节点的注册和动态发现,zookeeper作为服务注册中心70存在。每个服务提供者90(即工作节点worker)注册服务到zookeeper,并定期上报心跳信息到服务注册中心,证明自己存活。例如语音识别业务的asr worker注册的path为/iworker/asr,tts注册的path为/iworker/tts。服务消费者80也即是引擎服务管理组件,在启动时会获取服务注册信息,并且订阅某个zk路径下的数据和工作节点变化,一旦服务提供者(即worker)变更时,zookeeper会告知服务消费者(引擎服务管理组件),服务消费者会更新本地缓存的下游服务地址信息,即可获取变更的worker所在的服务器的网络地址(如IP地址)。
其中,第一节点注册信息包括每个工作节点处理的业务流程、节点标识以及第一服务器的网络地址。
相应的,第一服务器也会接收到其他服务器调用引擎服务管理组件发送的节点注册信息(记为第二节点注册信息),第二节点注册信息包括其他服务器上每个工作节点处理的业务流程、节点标识以及该其他服务器的网络地址,通过服务注册以及注册信息的共享,可以使得引擎服务管理组件准确、全面地得知各个工作节点的分布情况以及具备的能力(即对应处理的业务流程)。
405、获取所述目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据。
406、调用第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理目标业务的第一业务流程的工作节点。
需要说明的是,步骤405~406的具体实现可以参见前述实施例中步骤201~202中的相关描述,此处不再赘述。
在一些可行的实施方式中,调用第一工作节点对待处理数据进行处理的具体内部实现可以参见图5c所示,具体包括:引擎服务管理组件可以根据顺序依次调用每个worker的线程池管理器507,由线程池管理器507往请求队列508(Request Queue)中添加请求。线程池中的工作线程504(work thread)按照先进先出的顺序读取请求队列508进行处理。处理完之后将结果放置到结果队列509(Result Queue)中,线程池管理器507可以从结果队列509(Result Queue)中获取第一业务流程的数据处理结果。
在一些可行的实施方式中,每种业务(如目标业务)可以包括一种或多种工作模式,每种工作模式包括对应的多个业务流程以及该多个业务流程之间的执行顺序。
在一些可行的实施方式中,在服务器进行业务处理的过程中,用户可以自由进行工作模式的切换,使得服务器按照切换的工作模式对应的业务处理流程进行数据处理。具体可以包括:第一服务器获取目标业务的模式切换指令,模式切换指令携带有用户期望切换到的目标工作模式,例如可以接收终端设备发送的用户输入的模式切换指令,将目标业务的当前工作模式切换为该目标工作模式,并可以获取该目标工作模式包括的多个业务流程以及多个业务流程之间的执行顺序,在接收到目标业务的数据处理请求时,则按照该目标工作模式包括的业务流程以及执行顺序进行数据处理,从而实现工作模式的快速切换,满足用户对同一业务的不同数据处理流程的个性化需求。
在一些可行的实施方式中,本发明实施例中传输的数据(包括上述的数据处理请求、模式切换指令等)可以是通过数据封装得到的结构化数据,例如进行json格式封装得到的数据,可以定义两种数据类型,一种是业务数据,另一种是控制数据;结构化数据的示例可以如下:
具体的,第一服务器可以根据结构化数据中的类型标识(如message_type)来区分获取到的数据是数据处理请求还是模式切换指令,如果类型标识指示的数据类型为业务数据,则可以确定获取到的数据是数据处理请求;如果类型标识指示的数据类型为控制数据,则可以确定获取到的数据是模式切换指令,从而通过结构化数据中的类型标识准确、有效地指示出不同的数据类型,便于服务器进行数据的区分。
407、获取所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程。
具体的,第一服务器可以获取目标业务的当前工作模式,并获取当前工作模式包括的多个业务流程以及多个业务流程之间的执行顺序,根据当前工作模式包括的多个业务流程以及多个业务流程之间的执行顺序,获取第一业务流程的下一个业务流程,例如目标业务包括的业务流程以及执行顺序为:ASR—>NLP—>TTS,如果第一业务流程为NLP,则下一个业务流程为TTS。
在一些可行的实施方式中,可以允许用户对各个业务的工作模式进行灵活配置。具体的,针对任一业务(如目标业务),可以获取目标业务的工作模式配置数据,根据工作模式配置数据生成目标业务的一种或多种工作模式,每种工作模式包括对应的多个业务流程以及该多个业务流程之间的执行顺序。例如,目标业务为语音识别业务,可以设置两种工作模式,一种工作模式为:ASR—>NLP—>TTS,另一种工作模式为:ASR—>NLP。
408、从所述多个服务器中获取用于处理所述下一个业务流程的工作节点所在的服务器组成的服务器集合,并根据预设调度策略从所述服务器集合包括的服务器中确定第二服务器。
具体的,第一服务器根据各个服务器的节点注册信息,可以确定用于处理该下一个业务流程的工作节点所在的服务器组成的服务器集合,根据预设调度策略可以从服务器集合包括的服务器中确定第二服务器,并向第二服务器发送中间处理结果。
在一些可行的实施方式中,预设调度策略可以是:第一服务器可以根据待处理数据的签名和服务器集合包括的服务器的数量确定服务器标识,例如对待处理数据的签名转换得到整型值int,再对服务器集合包括的服务器的数量取模,随机得到一个数值,并作为服务器标识,可以对服务器集合包括的各个服务器进行编号,根据随机得到的数值可以从中随机确定出一个第二服务器,可以有效实现分布式场景下的负载均衡,并支持多种负载均衡策略。
其中,预设调度策略可以包括无状态轮询调度和有状态调度。无状态轮询调度是指根据随机得到的数值确定出一个第二服务器,并支持失败重试,在小于重试上限时,发送数据到对应的服务器,若发送成功,则无需更新调度依据列表,返回调度结果成功;若发送不成功,则更新调度依据列表,例如对待处理数据的签名转换得到整型值int进行自增,如+1。
有状态调度是指:首次处理数据时,根据随机得到的数值确定出一个第二服务器,并更新调度依据列表,记录待处理数据的签名和选取的第二服务器之间的对应关系;在后续处理数据时,如果小于重试上限,则查询调度依据列表,发送数据到对应的服务器;如果达到重试上限,但仍发送失败,则将调度错误信息返回给用户,由用户处理。
409、向所述第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
在一些可行的实施方式中,如图5d所示,用于处理某个业务的业务流程的各个工作节点(worker 1、worker 2、……、worker n)中,每个worker在自身的线程池中对数据进行对应的业务流程处理,并将处理结果传递给下一个worker,从而高效地完成该业务的各个业务流程,得到最终处理结果。
本申请实施例中,可以在服务器上灵活配置用于处理业务的各个业务流程的工作节点(worker),并且worker可以进行自由组合,其中,自由组合是指可以自由选择不同服务器上的工作节点组合起来,共同实现指定的业务,并可以指定工作节点之间的组合顺序,即工作节点在执行时的顺序,同一业务可以制定多种工作模式,还可以进行工作模式的灵活切换,使得业务的具体业务流程可以高度定制化,能够方便的对系统进行适配以适应新的业务场景,可扩展性强,并且可以摆脱对繁杂组件以及运行环境的依赖,充分满足各种业务场景下实时数据流高效处理的需求。
请参见图6,是本申请实施例的一种数据处理装置的结构示意图。所述装置包括:
获取模块601,用于获取目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据。
处理模块602,用于调用第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理所述第一业务流程的工作节点。
发送模块603,用于根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
可选的,所述每个服务器上还运行有引擎服务管理组件,所述装置还包括接收模块604,其中:
所述获取模块601,还用于获取所述第一服务器的服务配置数据。所述处理模块602,还用于调用所述引擎服务管理组件根据所述服务配置数据启动一个或多个工作节点,并配置每个工作节点处理的业务流程,所述每个工作节点处理的业务流程为所述目标业务包括的多个业务流程中的其中一个。
所述发送模块603,还用于调用所述引擎服务管理组件向所述多个服务器中的其他服务器发送所述第一服务器的第一节点注册信息。
所述接收模块604,用于接收所述其他服务器发送的第二节点注册信息。
可选的,所述第一节点注册信息包括所述每个工作节点处理的业务流程、节点标识以及所述第一服务器的网络地址;所述第二节点注册信息包括所述其他服务器上每个工作节点处理的业务流程、节点标识以及所述其他服务器的网络地址。
可选的,所述每个服务器上还运行有服务注册中心,所述获取模块601,还用于调用所述服务注册中心获取所述第一服务器上每个工作节点的注册数据,所述注册数据包括所述每个工作节点处理的业务流程以及节点标识。
所述处理模块602,还用于根据所述每个工作节点的注册数据生成所述第一服务器的第一节点注册信息。
可选的,所述获取模块601,还用于获取所述第一服务器的服务更新数据。
所述处理模块602,还用于调用所述引擎服务管理组件根据所述服务更新数据对所述第一服务器的工作节点进行调整操作,所述调整操作包括新增工作节点、删除工作节点和调整工作节点处理的业务流程中的一种或多种。
可选的,所述处理模块602,还用于若预设时长内获取的所述数据处理请求的数量达到数量阈值,则调用所述引擎服务管理组件根据所述服务配置数据启动至少一个第三工作节点,并配置每个第三工作节点处理的业务流程。
可选的,所述处理模块602,还用于:
根据所述服务配置数据确定所述每个工作节点的线程池的特征数据,所述特征数据包括工作线程的数量以及占用的资源量。
调用所述引擎服务管理组件根据所述每个工作节点的线程池的特征数据,在所述每个工作节点上启动线程池,所述线程池包括的工作线程用于处理对应的业务流程。
可选的,所述发送模块603,具体用于:
获取所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程。
从所述多个服务器中获取用于处理所述下一个业务流程的工作节点所在的服务器组成的服务器集合。
根据预设调度策略从所述服务器集合包括的服务器中确定第二服务器,并向所述第二服务器发送所述中间处理结果。
可选的,所述发送模块603,具体用于:
获取所述目标业务的当前工作模式。
获取所述当前工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序。
根据所述当前工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序,获取所述第一业务流程的下一个业务流程。
可选的,所述发送模块603,具体用于:
根据所述待处理数据的签名和所述服务器集合包括的服务器的数量确定服务器标识。
从所述服务器集合包括的服务器中获取所述服务器标识对应的第二服务器。
可选的,所述获取模块601,还用于获取所述目标业务的模式切换指令,所述模式切换指令携带有目标工作模式。
所述处理模块602,还用于将所述目标业务的当前工作模式切换为所述目标工作模式。
所述获取模块601,还用于获取所述目标工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序。
可选的,所述获取模块601,还用于获取所述目标业务的工作模式配置数据。
所述处理模块602,还用于根据所述工作模式配置数据生成所述目标业务的一种或多种工作模式,每种工作模式包括多个业务流程以及所述多个业务流程之间的执行顺序。
可选的,所述第一工作节点上运行的线程池包括多个工作线程,所述处理模块602,具体用于:
调用所述第一工作节点的多个工作线程对所述待处理数据并行执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果。
需要说明的是,本申请实施例的数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图7,是本申请实施例的一种服务器的结构示意图,本申请实施例的所述服务器包括供电模块等结构,并包括处理器701、存储装置702以及网络接口703。所述处理器701、存储装置702以及网络接口703之间可以交互数据。
所述存储装置702可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置702也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;所述存储装置702还可以包括上述种类的存储器的组合。
所述处理器701可以是中央处理器701(central processing unit,CPU)。在一个实施例中,所述处理器701还可以是图形处理器801(Graphics Processing Unit,GPU)。所述处理器701也可以是由CPU和GPU的组合。在一个实施例中,所述存储装置702用于存储程序指令。所述处理器701可以调用所述程序指令,执行如下操作:
获取目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据。
调用第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理所述第一业务流程的工作节点。
根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
可选的,所述每个服务器上还运行有引擎服务管理组件,所述处理器701,还用于:
获取所述第一服务器的服务配置数据。
调用所述引擎服务管理组件根据所述服务配置数据启动一个或多个工作节点,并配置每个工作节点处理的业务流程,所述每个工作节点处理的业务流程为所述目标业务包括的多个业务流程中的其中一个。
调用所述引擎服务管理组件向所述多个服务器中的其他服务器发送所述第一服务器的第一节点注册信息。
接收所述其他服务器发送的第二节点注册信息。
可选的,所述第一节点注册信息包括所述每个工作节点处理的业务流程、节点标识以及所述第一服务器的网络地址;所述第二节点注册信息包括所述其他服务器上每个工作节点处理的业务流程、节点标识以及所述其他服务器的网络地址。
可选的,所述每个服务器上还运行有服务注册中心,所述处理器701,还用于:
调用所述服务注册中心获取所述第一服务器上每个工作节点的注册数据,所述注册数据包括所述每个工作节点处理的业务流程以及节点标识。
根据所述每个工作节点的注册数据生成所述第一服务器的第一节点注册信息。
可选的,所述处理器701,还用于:
获取所述第一服务器的服务更新数据。
调用所述引擎服务管理组件根据所述服务更新数据对所述第一服务器的工作节点进行调整操作,所述调整操作包括新增工作节点、删除工作节点和调整工作节点处理的业务流程中的一种或多种。
可选的,所述处理器701,还用于:
若预设时长内获取的所述数据处理请求的数量达到数量阈值,则调用所述引擎服务管理组件根据所述服务配置数据启动至少一个第三工作节点,并配置每个第三工作节点处理的业务流程。
可选的,所述处理器701,还用于:
根据所述服务配置数据确定所述每个工作节点的线程池的特征数据,所述特征数据包括工作线程的数量以及占用的资源量。
调用所述引擎服务管理组件根据所述每个工作节点的线程池的特征数据,在所述每个工作节点上启动线程池,所述线程池包括的工作线程用于处理对应的业务流程。
可选的,所述处理器701,具体用于:
获取所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程。
从所述多个服务器中获取用于处理所述下一个业务流程的工作节点所在的服务器组成的服务器集合。
根据预设调度策略从所述服务器集合包括的服务器中确定第二服务器,并向所述第二服务器发送所述中间处理结果。
可选的,所述处理器701,具体用于:
获取所述目标业务的当前工作模式。
获取所述当前工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序。
根据所述当前工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序,获取所述第一业务流程的下一个业务流程。
可选的,所述处理器701,具体用于:
根据所述待处理数据的签名和所述服务器集合包括的服务器的数量确定服务器标识。
从所述服务器集合包括的服务器中获取所述服务器标识对应的第二服务器。
可选的,所述处理器701,还用于:
获取所述目标业务的模式切换指令,所述模式切换指令携带有目标工作模式。
将所述目标业务的当前工作模式切换为所述目标工作模式。
获取所述目标工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序。
可选的,所述处理器701,还用于获取所述目标业务的工作模式配置数据,并根据所述工作模式配置数据生成所述目标业务的一种或多种工作模式,每种工作模式包括多个业务流程以及所述多个业务流程之间的执行顺序。
可选的,所述第一工作节点上运行的线程池包括多个工作线程,所述处理器701,具体用于:
调用所述第一工作节点的多个工作线程对所述待处理数据并行执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果。
具体实现中,本申请实施例中所描述的处理器701、存储装置702以及网络接口703可执行本申请实施例图3或图4提供的数据处理方法的相关实施例中所描述的实现方式,也可执行本申请实施例图6提供的数据处理装置的相关实施例中所描述的实现方式,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序包括一条或一条以上指令,可存储于一计算机存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法的实施例中所执行的步骤。
以上所揭露的仅为本申请部分实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种数据处理方法,其特征在于,应用于业务处理系统包括的多个服务器中的第一服务器,每个服务器上运行有一个或多个工作节点,所述方法包括:
获取目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据;
调用所述第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理所述第一业务流程的工作节点;
根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向所述多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
2.根据权利要求1所述的方法,其特征在于,所述每个服务器上还运行有引擎服务管理组件,所述获取目标业务的数据处理请求之前,所述方法还包括:
获取所述第一服务器的服务配置数据;
调用所述引擎服务管理组件根据所述服务配置数据启动一个或多个工作节点,并配置每个工作节点处理的业务流程,所述每个工作节点处理的业务流程为所述目标业务包括的多个业务流程中的其中一个;
调用所述引擎服务管理组件向所述多个服务器中的其他服务器发送所述第一服务器的第一节点注册信息;
接收所述其他服务器发送的第二节点注册信息。
3.根据权利要求2所述的方法,其特征在于,所述第一节点注册信息包括所述每个工作节点处理的业务流程、节点标识以及所述第一服务器的网络地址;所述第二节点注册信息包括所述其他服务器上每个工作节点处理的业务流程、节点标识以及所述其他服务器的网络地址。
4.根据权利要求2或3所述的方法,其特征在于,所述每个服务器上还运行有服务注册中心,所述调用所述引擎服务管理组件向所述多个服务器中的其他服务器发送所述第一服务器的第一节点注册信息之前,所述方法还包括:
调用所述服务注册中心获取所述第一服务器上每个工作节点的注册数据,所述注册数据包括所述每个工作节点处理的业务流程以及节点标识;
根据所述每个工作节点的注册数据生成所述第一服务器的第一节点注册信息。
5.根据权利要求2或3所述的方法,其特征在于,所述调用所述引擎服务管理组件根据所述服务配置数据启动一个或多个工作节点,并配置每个工作节点处理的业务流程之后,所述方法还包括:
获取所述第一服务器的服务更新数据;
调用所述引擎服务管理组件根据所述服务更新数据对所述第一服务器的工作节点进行调整操作,所述调整操作包括新增工作节点、删除工作节点和调整工作节点处理的业务流程中的一种或多种。
6.根据权利要求2或3所述的方法,其特征在于,所述调用所述引擎服务管理组件根据所述服务配置数据启动一个或多个工作节点,并配置每个工作节点处理的业务流程之后,所述方法还包括:
若预设时长内获取的所述数据处理请求的数量达到数量阈值,则调用所述引擎服务管理组件根据所述服务配置数据启动至少一个第三工作节点;
配置每个第三工作节点处理的业务流程。
7.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
根据所述服务配置数据确定所述每个工作节点的线程池的特征数据,所述特征数据包括工作线程的数量以及占用的资源量;
调用所述引擎服务管理组件根据所述每个工作节点的线程池的特征数据,在所述每个工作节点上启动线程池,所述线程池包括的工作线程用于处理对应的业务流程。
8.根据权利要求1所述的方法,其特征在于,所述根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向所述多个服务器中的第二服务器发送所述中间处理结果,包括:
获取所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程;
从所述多个服务器中获取用于处理所述下一个业务流程的工作节点所在的服务器组成的服务器集合;
根据预设调度策略从所述服务器集合包括的服务器中确定第二服务器,并向所述第二服务器发送所述中间处理结果。
9.根据权利要求8所述的方法,其特征在于,所述获取所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,包括:
获取所述目标业务的当前工作模式;
获取所述当前工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序;
根据所述当前工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序,获取所述第一业务流程的下一个业务流程。
10.根据权利要求8所述的方法,其特征在于,所述根据预设调度策略从所述服务器集合包括的服务器中确定第二服务器,包括:
根据所述待处理数据的签名和所述服务器集合包括的服务器的数量确定服务器标识;
从所述服务器集合包括的服务器中获取所述服务器标识对应的第二服务器。
11.根据权利要求8~10中任一项所述的方法,其特征在于,所述方法还包括:
获取所述目标业务的模式切换指令,所述模式切换指令携带有目标工作模式;
将所述目标业务的当前工作模式切换为所述目标工作模式;
获取所述目标工作模式包括的多个业务流程以及所述多个业务流程之间的执行顺序。
12.根据权利要求8~10中任一项所述的方法,其特征在于,所述方法还包括:
获取所述目标业务的工作模式配置数据;
根据所述工作模式配置数据生成所述目标业务的一种或多种工作模式,每种工作模式包括多个业务流程以及所述多个业务流程之间的执行顺序。
13.根据权利要求1所述的方法,其特征在于,所述第一工作节点上运行的线程池包括多个工作线程,所述调用所述第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,包括:
调用所述第一工作节点的多个工作线程对所述待处理数据并行执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果。
14.一种数据处理装置,其特征在于,所述装置包括:
获取模块,用于获取目标业务的数据处理请求,所述数据处理请求携带有待处理数据,所述待处理数据包括实时产生的流式信号数据;
处理模块,用于调用第一服务器的第一工作节点对所述待处理数据执行所述目标业务的第一业务流程对应的处理操作,得到中间处理结果,其中,所述第一工作节点为所述第一服务器上用于处理所述第一业务流程的工作节点;
发送模块,用于根据所述目标业务包括的多个业务流程中所述第一业务流程的下一个业务流程,向多个服务器中的第二服务器发送所述中间处理结果,以使得所述第二服务器调用第二工作节点对所述中间处理结果执行所述下一个业务流程对应的处理操作,其中,所述第二工作节点为所述第二服务器上用于处理所述下一个业务流程的工作节点。
15.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行如权利要求1~13中任一项所述的数据处理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656764.6A CN115550354A (zh) | 2021-06-11 | 2021-06-11 | 一种数据处理方法、装置及计算机可读存储介质 |
PCT/CN2021/108504 WO2022257247A1 (zh) | 2021-06-11 | 2021-07-26 | 数据处理方法、装置及计算机可读存储介质 |
US18/314,094 US12126698B2 (en) | 2021-06-11 | 2023-05-08 | Data processing method and apparatus, and computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656764.6A CN115550354A (zh) | 2021-06-11 | 2021-06-11 | 一种数据处理方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115550354A true CN115550354A (zh) | 2022-12-30 |
Family
ID=84425534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110656764.6A Pending CN115550354A (zh) | 2021-06-11 | 2021-06-11 | 一种数据处理方法、装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115550354A (zh) |
WO (1) | WO2022257247A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115988087A (zh) * | 2023-03-17 | 2023-04-18 | 北京百度网讯科技有限公司 | 基于总线的服务调用方法、装置、电子设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116739327B (zh) * | 2023-08-11 | 2023-10-27 | 长沙睿展数据科技有限公司 | 一种动态业务流程中的轻量级的流程引擎实现方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100259B (zh) * | 2015-08-18 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和系统 |
US10554577B2 (en) * | 2017-03-14 | 2020-02-04 | International Business Machines Corporation | Adaptive resource scheduling for data stream processing |
WO2018195899A1 (en) * | 2017-04-28 | 2018-11-01 | Beijing Didi Infinity Technology And Development Co., Ltd. | System and method for task scheduling and device management |
CN106990332B (zh) * | 2017-06-06 | 2019-05-07 | 国网重庆市电力公司电力科学研究院 | 一种基于配电网数据处理的单相接地故障定位方法 |
CN112000453B (zh) * | 2020-08-25 | 2024-06-28 | 支付宝(杭州)信息技术有限公司 | 一种流计算系统的调度方法和系统 |
-
2021
- 2021-06-11 CN CN202110656764.6A patent/CN115550354A/zh active Pending
- 2021-07-26 WO PCT/CN2021/108504 patent/WO2022257247A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115988087A (zh) * | 2023-03-17 | 2023-04-18 | 北京百度网讯科技有限公司 | 基于总线的服务调用方法、装置、电子设备和存储介质 |
CN115988087B (zh) * | 2023-03-17 | 2023-08-01 | 北京百度网讯科技有限公司 | 基于总线的服务调用方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20230275976A1 (en) | 2023-08-31 |
WO2022257247A1 (zh) | 2022-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413673B (zh) | 数据库数据统一采集与分发方法及系统 | |
CN102467411A (zh) | 一种工作流处理及工作流代理方法、装置和系统 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN110933075B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN112286698A (zh) | 远程过程调用方法、装置以及远程过程调用执行方法 | |
CN105516086A (zh) | 业务处理方法及装置 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN112328362A (zh) | 一种基于容器技术实现函数计算服务的方法 | |
CN112988362A (zh) | 一种任务处理方法、装置、电子设备及存储介质 | |
CN113656164A (zh) | 任务执行方法、系统、电子设备及计算机存储介质 | |
WO2021012506A1 (zh) | 语音识别系统中的负载均衡实现方法、装置以及计算机设备 | |
CN113326025B (zh) | 一种单一集群远程持续发布方法及装置 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111835797A (zh) | 一种数据处理方法、装置及设备 | |
CN108259605B (zh) | 一种基于多数据中心的数据调用系统及方法 | |
CN112235378B (zh) | 数据更新方法、装置、存储介质及电子设备 | |
CN111190731A (zh) | 基于权重的集群任务调度系统 | |
CN111274018A (zh) | 一种基于dl框架下的分布式训练方法 | |
CN109218371B (zh) | 一种调用数据的方法和设备 | |
CN114205233B (zh) | 一种面向数据管控的智能合约自适应配置与执行的系统 | |
US12126698B2 (en) | Data processing method and apparatus, and computer-readable storage medium | |
CN113965563B (zh) | 基于模型的业务处理方法及装置、服务器 | |
CN115114022A (zh) | 对gpu资源进行使用的方法、系统、设备及介质 | |
CN111400060B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40079491 Country of ref document: HK |