一种流式数据的处理方法和装置与流程

文档序号:19771887发布日期:2020-01-24 10:59阅读:270来源:国知局
一种流式数据的处理方法和装置与流程

本发明涉及网络技术领域,特别是涉及一种流式数据的处理方法和装置。



背景技术:

近年来,计算机技术和互联网技术获得迅猛的发展,网络的业务和应用逐渐丰富,网络已经成为人们日常生活中不可或缺的一部分。与此同时,随着网络规模的不断扩大,使得网络管理系统所管理的设备越来越多,需要处理的数据量也越来越大,因此,这就给网络管理系统的设计开发也提出了更高的要求。

传统的网络管理系统,按照功能分类划分2~3个进程,进程间通过corba(commonobjectrequestbrokerarchitecture,公共对象请求代理体系结构)中间件通信,协同完成流式数据的处理。此外,还可以通过部署多台服务器在物理上分散流式数据的处理,达到增加整体吞吐量的目的。

然而,上述传统的网络管理系统在进程内部使用串行运算的方式,这种运算方式会导致处理效率低下;例如,执行过程a和过程b的耗时均是1小时,当有一条数据到来时,先将该条数据送入过程a,并在过程a处理完成该条数据后,再将该条数据送入过程b,然后对下一条数据的处理过程仍是如此,过程a或过程b在同一时刻只有一个在执行运算,若有100条数据等待处理,则总耗时需要200小时。

此外,虽然也有个别处理过程使用线程池进行运算,但由于告警流式数据的前后关联性,使得线程池并不能提高处理效率;例如,按先后顺序存在告警数据d、e、f,其中d与f有业务上的关联,那么处理f时必须分析其与d的关联。因此,告警流式数据处理时必须严格遵照时间顺序,线程池的随机并发处理会导致乱序问题,而在线程池上增加顺序则与串行无异。所以,线程池只适用于无关联的数据。



技术实现要素:

本发明实施例所要解决的技术问题是提供一种流式数据的处理方法和装置,能够对流式数据并发处理,提高处理的效率。

为了解决上述问题,本发明公开了一种流式数据的处理方法,包括:

针对当前过程拷贝接收流式数据;其中,所述过程拷贝为具备独立运算线程的运算实体;

利用所述当前过程拷贝的线程对所述流式数据进行处理;其中,所述线程与所述流式数据的源头一一对应;

利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝,由下一过程拷贝对所述处理后的流式数据进行处理,直到所述流式数据被最后一个过程拷贝处理完毕。

优选地,所述利用所述当前过程拷贝的线程对所述流式数据进行处理,包括:

利用所述当前过程拷贝对所述流式数据的源头进行识别;

判断识别出的所述流式数据的源头对应的线程是否已经创建,若已经创建,则将所述流式数据加入所述线程的缓存队列末尾;若未创建,则为所述流式数据的源头创建对应的线程并启动该线程,以及为所述线程创建对应的缓存队列,将所述流式数据加入所述线程对应的缓存队列末尾;

利用所述线程从其对应的缓存队列取出所述流式数据并进行处理。

优选地,所述利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝对应的传递方式包括以下方式中的一种或者几种:本地接口调用的传递方式、文本文件的传递方式、以及jms消息的传递方式。

优选地,所述针对当前过程拷贝接收流式数据,包括:

针对当前过程拷贝按照预置顺序依次接收流式数据。

依据本发明的另一个方面,提供了一种流式数据的处理装置,包括:

接收模块,用于针对当前过程拷贝接收流式数据;其中,所述过程拷贝为具备独立运算线程的运算实体;

处理模块,用于利用所述当前过程拷贝的线程对所述流式数据进行处理;其中,所述线程与所述流式数据的源头一一对应;及

传递模块,用于利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝,由下一过程拷贝对所述处理后的流式数据进行处理,直到所述流式数据被最后一个过程拷贝处理完毕。

优选地,所述处理模块,包括:

识别单元,用于利用所述当前过程拷贝对所述流式数据的源头进行识别;

判断单元,用于判断识别出的所述流式数据的源头对应的线程是否已经创建;

创建单元,用于在未创建所述流式数据的源头对应的线程时,为所述流式数据的源头创建对应的线程并启动该线程;

入队单元,用于将所述流式数据加入所述线程的缓存队列末尾;

处理单元,用于利用所述线程从其对应的缓存队列取出所述流式数据并进行处理。

优选地,所述利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝对应的传递方式包括以下方式中的一种或者几种:本地接口调用的传递方式、文本文件的传递方式、以及jms消息的传递方式。

优选地,所述接收模块,包括:

接收单元,用于针对当前过程拷贝按照预置顺序依次接收流式数据。

与现有技术相比,本发明实施例包括以下优点:

本发明实施例在处理流式数据的过程中,针对过程设置若干个独立的过程拷贝,通过过程拷贝之间的解耦实现过程间的并发处理,因此可以提高流式数据的处理效率,解决了现有技术中采用串行运算的方式导致效率低下的问题;并且,本发明实施例还按照数据源头区分的方式来处理流式数据,能够实现多个线程对多个源头的流式数据并发处理,并且当前过程拷贝中的线程与流式数据的源头一一对应,各线程只处理与之对应的源头的流式数据,进而实现了相同源头的流式数据可以按照预置顺序(如d1、d2、…、dn的顺序)进入同一线程并发处理,解决了线程池的随机并发处理会导致乱序问题,进一步提高了流式数据的处理效率。

附图说明

图1示出了本发明的一种流式数据处理的方法步骤流程图;

图2示出了本发明的一种利用所述当前过程拷贝的线程对所述流式数据进行处理的步骤流程图;

图3示出了本发明的一种流式数据的处理系统的结构示意图;

图4以数据视角示出了本发明一种流式数据的处理方法的流程图;

图5以过程视角示出了本发明一种流式数据的处理方法的流程图;

图6示出了本发明一种流式数据的处理装置的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一

参照图1,示出了本发明的一种流式数据处理的方法步骤流程图,具体可以包括如下步骤:

步骤101、针对当前过程拷贝接收流式数据;其中,所述过程拷贝为具备独立运算线程的运算实体;

现有的流式数据的处理过程采用串行运算的方法,即过程a对数据处理完成后,再交给过程b进行处理,导致处理效率低下,本发明提出了针对过程设置若干个独立的过程拷贝,并通过过程拷贝之间的解耦实现过程间的并行执行。

例如,可以针对过程a按数据源头1、2、3…n设置独立的过程拷贝(即具备独立运算线程的运算实体)a1、a2、…、an,a1只处理数据源1的数据,a2只处理数据源2的数据。其中,a1+a2+…+an实现过程a的工作,将过程b也分解为独立的过程拷贝b1、b2、…、bn,在处理来自数据源1的100条流式数据(d1、d2、…、d100)时,过程a中对应数据源1的过程拷贝a1首先对d1进行处理,处理完成后将d1交给下一个过程拷贝b1进行处理,同时,过程拷贝a1还可以开始对d2进行处理,当过程a将当前数据处理完传递给过程b,过程b开始处理当前数据的同时过程a已经开始处理下一条数据了,假如执行过程a和过程b的耗时均是1小时,则100条流式数据总耗时需要101小时,相比现有技术,提高了流式数据处理的效率。

步骤102、利用所述当前过程拷贝的线程对所述流式数据进行处理;其中,所述线程与所述流式数据的源头一一对应;

在具体应用中,由于告警流式数据的前后关联性,使得线程池并不能提高处理效率,为了解决这一问题,本发明提出按照数据源头区分的方式来并发处理流式数据,具体地,利用过程拷贝中的线程对来自相同源头的流式数据进行处理,以实现多个源头的流式数据的并发处理。

例如,在当前过程拷贝的处理过程中,可以针对各流式数据的源头创建对应的互相独立的线程,如线程t1、线程t2、线程t3等等,其中,线程t1只处理来自源头s1的数据,线程t2只处理来自源头s2的数据,线程t3只处理来自源头s3的数据。具体到网管场景,源头具体可以为一台设备、一个采集点等等,例如在监测100个设备的告警信息时,一个设备就可以看作一个源头。

这样,当前过程拷贝中的线程与流式数据的源头一一对应,各线程处理与之对应源头的流式数据,从而可以实现多个线程对多个源头的流式数据并发处理。

在具体应用中,过程在运行时按照流式数据的源头不同可以存在多个过程拷贝。过程拷贝即对应同一数据源头,接收同一个源头到来的数据并执行与所属过程相同的业务逻辑的工作实体,具备独立线程,故在运算上是独立的,同过程的多个拷贝相同点是业务逻辑相同,不同点是处理的数据来自不同数据源头。例如:“数据入库过程”,此过程的业务逻辑是将数据保存至数据库,对于来自a点的数据存在过程拷贝甲,对来自于b点的数据存在过程拷贝乙,a点产生的数据固定由拷贝甲中的线程执行保存的业务代码,b点同理,甲乙都是做保存至数据库的逻辑但是处理的数据是来自不同数据源的),多个过程和单个过程的多个拷贝必定运行在一个进程当中(多过程多拷贝分享一个进程。常见的形式为:共13个过程,前7个过程综合为a类进程,后5个过程组成为b类进程,a类进程运行在10个服务器上,共10个进程;b类进程运行在3个服务器上,共3个进程,即过程与进程之间的关系很灵活。但过程的单个工作拷贝在运行时必定包含一个工作线程。

步骤103、利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝,由下一过程拷贝对所述处理后的流式数据进行处理,直到所述流式数据被最后一个过程拷贝处理完毕。

如前述示例,首先,过程拷贝a1对数据d1进行处理,即过程拷贝a1中的线程对数据d1进行处理,处理完成后,该线程将数据d1传递给过程拷贝b1,同样的,过程拷贝b1对数据d1处理完成后,再将数据d1继续向下传递,直到所有过程对数据d1处理完毕,此时,即完成了所有过程对数据d1的处理。

在本发明的一种优选实施例中,针对当前过程拷贝接收流式数据的步骤,具体可以包括:

针对当前过程拷贝按照预置顺序依次接收流式数据。

由于告警流式数据处理时必须严格遵照时间顺序,线程池的随机并发处理会导致乱序问题,因此,本发明提出按照源头对流式数据区分,并且进一步地,可以针对当前过程拷贝按照预置顺序(如d1、d2、…、dn的顺序)依次接收流式数据,由当前过程拷贝中与源头对应的线程进行流式数据的处理,从而可以实现对有关联的流式数据并发进行处理,解决了线程池的随机并发处理会导致乱序问题,使得有关联的流式数据也可以并发处理,从而提高流式数据的处理效率。

综上,本发明实施例在处理流式数据的过程中,通过过程拷贝之间的解耦实现过程间的并发处理,从而可以提高流式数据的处理效率,解决了现有技术中采用串行运算的方式导致效率低下的问题;还提出按照数据源头区分的方式来处理流式数据,从而可以实现多个线程对多个源头的流式数据并发处理,并且使当前过程拷贝中的线程与流式数据的源头一一对应,各线程只处理与之对应的源头的流式数据,进而实现了相同源头的流式数据可以按照预置顺序(如d1、d2、…、dn的顺序)进入同一线程并发处理,解决了线程池的随机并发处理会导致乱序问题,进一步提高了流式数据的处理效率。

在本发明的另一种优选实施例中,所述利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝对应的传递方式具体可以包括以下方式中的一种或者几种:本地接口调用的传递方式、文本文件的传递方式、以及jms消息的传递方式。

其中,本地接口调用的传递方式具有响应速度快,吞吐量不受限,节省i/o的特点;

文本文件的传递方式响应速度慢一些,吞吐量虽然受磁盘限制但不会成为瓶颈,此外,可以跨进程,并且文件具备天然的存档性、可见性;

jms是一组标准的应用程序接口,能够用于访问多种消息服务器。jms消息响应最慢也在毫秒级,吞吐量受多方限制如中间件服务器的性能、网络带宽等,此外,可以跨服务器,基于ip协议跨地域,以及免费的队列中间件提供了多种拥塞策略和管理工具。

在具体实施时,可以采取其中任意一种方式在过程拷贝之间传递流式数据,甚至采取这三种的混合方式也可以,对此本发明不做具体限制。

本发明过程拷贝间数据传递的方式是多样化的,除了最基本的本地接口调用的传递方式(跨线程),还有文本文件的传递方式(跨进程),更有jms消息的传递方式(跨服务器),通过三种传递方式保证了各过程计算的灵活分布,为灵活的系统架构提供软件基础,适应于各种应用场景。

前面已经对过程包括多个线程的情况做了介绍,值得说明的是,过程还可以被设置成单例线程模式(限于单进程内唯一),可以应对特殊需要,比如,关系型数据库时考虑效率需要采用批量入库就需要汇总所有数据到一起处理。

其中,“单进程内唯一”指的是:不论流式数据的源头存在多少,进程内某过程只存在一个过程拷贝,当然相应的只存在一个工作线程,在多个流式数据源头的情况下某过程本来是创建多个过程拷贝的。

例如,因为sql的批量处理对速度提升很大,用批处理大量减少了sql的编译解释消耗,减少了网络传输,所以大数据量的sql执行时应尽量使用批处理。那么,在可接受的范围内单一批次包含的sql数量越大越好,因此,多个流式数据源头的数据产生的sql如果在一起执行效率最高,这个“持久化过程”最好在进程内是唯一的(不在全系统范围内唯一是因为不想产生额外的io成本反而降低效率),所以过程的单例模式产生了。

实施例二

本实施例的流式数据处理的方法在上述实施例一的基础上,进一步还可以包括如下可选技术方案。

参见图2,示出了本发明的一种利用所述当前过程拷贝的线程对所述流式数据进行处理的步骤流程图,具体可以包括:

步骤201、利用所述当前过程拷贝对所述流式数据的源头进行识别;

在本发明的一种应用示例中,可以使用适配器对所述流式数据的源头进行识别,此外,还可以利用适配器完成线程对流式数据的输入和输出工作。具体地,可以利用输入适配器完成对流式数据的接收,并且对该流式数据的源头进行识别,以及将识别出的源头信息作为附加属性标记在数据上。并且,线程对某条数据处理完成后,还可以利用输出适配器将该条数据输出到下一个过程拷贝。

可以理解,本领域技术人员可以根据实际情况,采用各种识别方法进行所述流式数据的源头的识别,本发明实施例对具体的识别方法不加以限制。

步骤202、判断识别出的所述流式数据的源头对应的线程是否已经创建,若已经创建,则将所述流式数据加入所述线程的缓存队列末尾;若未创建,则为所述流式数据的源头创建对应的线程并启动该线程,以及为所述线程创建对应的缓存队列,将所述流式数据加入所述线程对应的缓存队列末尾;

具体地,假设识别出的流式数据d1的源头为s1,且与s1对应的线程t1已经创建,则可以将d1加入线程t1的缓存队列末尾;若当前过程拷贝中还未建立与s1对应的线程t1,则可以创建线程t1并启动t1,以及为t1创建对应的缓存队列,将d1加入该缓存队列末尾。

步骤203、利用所述线程从其对应的缓存队列取出所述流式数据并进行处理。

当前过程拷贝中的每个线程都分别对应一个源头的流式数据,各线程从各自的缓存队列取出流式数据进行处理,使得多个源头的流式数据可以并发处理。至于并发数则可大可小,最大并发数可以为数据源可细分的最小粒度时的源头总数量。

为使本领域技术人员更好地理解本发明,参照图3,示出了本发明的一种流式数据的处理系统的结构示意图,该处理系统具体可以包括以下组成要素:过程拷贝p、流式数据的源头s、线程t、适配器、数据d、以及传递方式;

其中,过程拷贝p:将处理过程整体分解而得,可以针对过程设置若干个独立的过程拷贝,如图3中的p1、p2、…、pn。

流式数据的源头s:系统中存在多个数据源的情况下,根据不同的源划分为多个数据源头,如图3中的s1、s2、s3。

在本发明的一个应用示例中,采集服务器负责采集流式数据,如果采集点很多,需要3台服务器去对应,每台负责10~20个采集点,这些采集服务器做的事都是采集数据的处理。那么,参见图3,采集服务器可以为server_1-1、server_1-2、server_1-3,采集点即为流式数据的源头,采集点对应数据的处理可由过程拷贝p1来完成。

线程t:即运算线程,具体运算方法取决于其所属的过程,线程的输入数据固定从特定的流式数据的源头而来,根据不同的源头会有不同线程与之对应。

适配器:过程的组成部分,负责对流式数据的输入和输出工作,对流式数据的源头的识别工作,以及负责处理过程之间、过程拷贝之间不同的传递方式。

具体地,在适配器中,流式数据的源头的识别动作可以是预留的槽,开发者可以开发不同的识别方法,本发明对此不做具体限制,适配器可以将流式数据的源头识别后作为附加属性标记在数据上,适配器属于过程。

具体地,适配器作为过程的组成部分分为输入适配器和输出适配器两种,在过程初始化时创建并进入活动状态,如果是输入适配器的话,在数据到来时根据适配器被定义的识别方法,识别出数据源头并将数据分发至相应的过程拷贝的缓存队列当中;如果是输出适配器,在接收过程拷贝的输出后,将数据包装后传递至下一过程拷贝的输入适配器。

数据d:来自某个源头的实际数据,d1-x表示来自源头1的第x个数据。

传递方式:前述三种传递方式可以任选其一,且混合搭配可以发挥出不同传递方式的特点。

从图3中可以看出过程、源头和服务器三者之间的组合关系,架构可以做到过程在运行时物理上是可以分开的。具体地,server_1-1、server_1-2、以及server_1-3上运行了begin(即数据源)和第一个过程拷贝p1,server_1-1、server_1-2、以及server_1-3属于同一组服务器。而server_2与server_3则包揽了剩下的p2~pn过程拷贝。

为了更清楚的描述本发明的流式数据的处理方法,下面分别以数据视角和过程视角两个方面对流式数据的处理过程进行详细说明。

参见图4,以数据视角示出了本发明一种流式数据的处理方法的流程图,以数据d1-1的处理过程为例,具体可以包括以下步骤:

步骤401、源头s1产生数据d1-1(即源头s1产生的序列为1的数据);

步骤402、数据d1-1通过本地调用到达过程拷贝p1;

步骤403、数据d1-1经过输入适配器的处理,识别出源头s1;

步骤404、针对来自s1的数据创建新线程t1-1(即过程拷贝p1中的线程t1-1处理来自s1的数据),启动t1-1;

步骤405、为t1-1创建缓存队列,将d1-1放入队列末尾;

步骤406、t1-1从缓存队列中接收d1-1,完成p1自身的运算处理过程;

步骤407、t1-1将经过处理的d1-1经由输出适配器传递给下一过程拷贝p2;

具体地,可以采用本地接口调用、文本文件、以及jms消息这三种传递方式中的任意一种或者任意组合的方式进行过程拷贝之间数据的传递。

步骤408、数据d1-1到达过程拷贝p2;

步骤409、数据d1-1经过输入适配器的处理,识别出源头s1;

步骤410、针对来自s1的数据创建新线程t2-1(即过程拷贝p2中的线程t2-1处理来自s1的数据),启动t2-1;

步骤411、为t2-1创建缓存队列,将d1-1放入队列末尾;

步骤412、t2-1从缓存队列中接收d1-1,完成p2自身的运算处理过程;

步骤413、t2-1将经过处理的d1-1经由输出适配器传递给下一过程拷贝p3;

步骤414、如此往复,直到pn完成对d1-1的处理过程;

步骤415、数据d1-1处理结束。

从数据视角来说,在流式数据来临前,不同的过程已组成管道准备就绪,数据从进入第一个过程开始,经过若干过程的轮流处理,最终完成所有工作。

参见图5,以过程视角示出了本发明一种流式数据的处理方法的流程图,具体可以包括以下步骤:

步骤501、过程拷贝p1进行初始化操作;

具体地,可以包括加载各项预设参数,下载远程数据等前期准备工作。

步骤502、创建输入适配器、输出适配器并进行初始化;

步骤503、输入适配器等待被调用、或等待文件增长、或等待jms消息到达;

步骤504、检测到来自数据源s1的数据d1-1;

步骤505、创建针对数据源s1的运算线程t1-1并启动;

步骤506、为t1-1创建缓存队列,将d1-1放入队列末尾;

步骤507、t1-1从缓存队列中取到最新数据d1-1,执行运算;

步骤508、t1-1经过输出适配器将处理过的d1-1传递至下一过程拷贝p2;

具体地,可以采用本地接口调用、文本文件、以及jms消息这三种传递方式中的任意一种或者任意组合的方式。

步骤509、t1-1不断尝试取最新数据;

步骤510、t1-1取到最新数据d1-2,执行运算;

……

以过程视角来说,从程序被加载到内存中开始,经过初始化和一系列准备工作,开始进入数据监听状态,当数据到来后执行过程拷贝自身的功能逻辑,并将数据传递到下一个过程拷贝。

在本发明的一种应用示例中,可以提供如下过程接口的定义:

过程接口为开发者提供代码框架,开发者继承此接口,按照要求实现虚函数即可使用本发明提供的双重并发分布式运算功能。

publicabstractclasssuperfactory<material,product>{

protectedabstractlist<product>process(materialt)throwsexception;

protectedabstractsuperfactory<material,product>newinstance();

publicvoidadd(materialcontent){…}

}

接口可设置的参数有:

daemon:新线程是否创建为守护线程

java的两种线程,用户线程和守护线程,守护线程为低优先级的线程,当进程中只存在守护线程时,进程自动退出。

此处设置为守护线程的目的是使进程能够随用户线程的退出而退出从而避免僵尸进程的发生。用户线程为重要线程,当用户线程退出则表示程序出现不可恢复的异常,此时需要进程主动退出,以便进行后续的自动重启进程等外部恢复措施。

name:线程名称

concurrent:是否并发处理(单例线程/多线程)

blockout:出队是否阻塞

blockin:入队是否阻塞

inway:输入方式(调用/文件/jms)

outway:输出方式(调用/文件/jms)

在具体应用中,开发者编写过程代码时只需继承此抽象类superfactory即可。

此抽象类实现了适配功能、缓存队列、工作线程、单例模式。

此类superfactory为所有过程实现时需继承的抽象类,过程自身逻辑需覆盖process方法,调用只发生在begin(即数据源)产生数据后,由数据源自带线程调用add方法。

实例如下:在main方法中调用。

本发明实施例对于过程的接口提供各种运算方式和参数设置,以适应各过程的需要,如高速文件缓存,拥塞策略与排队策略。框架负责整个线程生命周期的管理,接管输入与输出,各过程只需关注自身逻辑。

各过程除了输入数据以外还需要其他辅助工具,如高速文件缓存为工具的一种,独立于核心框架,通过提供文件缓存基本框架,可以做到简单的开发即可完成一个与主库同步的高速本地缓存供查询。

通过阻塞策略的设置可以达到需要等待时将线程阻塞节省运算,某些需要周期性判断的逻辑可通过设置非阻塞达到周期执行的目的。

通过设置优先级排队策略达到优先数据插队的作用,同时设置最长等待时间避免无限等待问题。

此外,本发明实施例的运算是在过程内进行的,连续的过程可在物理上划分组合成过程组(根据自然理解与运算强度、i/o强度)、一个过程组按照数据源划分可以对应多台服务器,从而实现运算过程模块化的可组装。

装置实施例

参照图6,示出了本发明一种流式数据的处理装置的结构框图,具体可以包括:

接收模块610,用于针对当前过程拷贝接收流式数据;其中,所述过程拷贝为具备独立运算线程的运算实体;

处理模块620,用于利用所述当前过程拷贝的线程对所述流式数据进行处理;其中,所述线程与所述流式数据的源头一一对应;

传递模块630,用于利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝,由下一过程拷贝对所述处理后的流式数据进行处理,直到所述流式数据被最后一个过程拷贝处理完毕。

在本发明的一种优选实施例中,所述处理模块620,具体可以包括:

识别单元,用于利用所述当前过程拷贝对所述流式数据的源头进行识别;

判断单元,用于判断识别出的所述流式数据的源头对应的线程是否已经创建;

创建单元,用于在未创建所述流式数据的源头对应的线程时,为所述流式数据的源头创建对应的线程并启动该线程;

入队单元,用于将所述流式数据加入所述线程的缓存队列末尾;

处理单元,用于利用所述线程从其对应的缓存队列取出所述流式数据并进行处理。

在本发明的另一种优选实施例中,所述利用所述当前过程拷贝的线程将处理后的流式数据传递给下一过程拷贝对应的传递方式具体可以包括以下方式中的一种或者几种:本地接口调用的传递方式、文本文件的传递方式、以及jms消息的传递方式。

在本发明的又一种优选实施例中,所述接收模块,具体可以包括:

接收单元,用于针对当前过程拷贝按照预置顺序依次接收流式数据。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种流式数据处理的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1