CN108984285B - 一种数据碰撞流分析方法及装置、存储介质、终端 - Google Patents
一种数据碰撞流分析方法及装置、存储介质、终端 Download PDFInfo
- Publication number
- CN108984285B CN108984285B CN201810690385.7A CN201810690385A CN108984285B CN 108984285 B CN108984285 B CN 108984285B CN 201810690385 A CN201810690385 A CN 201810690385A CN 108984285 B CN108984285 B CN 108984285B
- Authority
- CN
- China
- Prior art keywords
- collision
- data
- server
- backup server
- idle
- 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.)
- Active
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
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)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种数据碰撞流分析方法及装置、存储介质、终端,所述数据碰撞流分析方法包括如下步骤:接收碰撞;查询确定空闲的碰撞线程;利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。本发明技术方案可以有效避免流通数据的丢失,提高数据分析的准确性。
Description
技术领域
本发明涉及数据流通技术领域,具体涉及一种数据碰撞流分析方法及装置、存储介质、终端。
背景技术
大数据已经被广泛认为是一种战略性的新型资源,可以定义当今时代产生的海量数据以及相关的技术发展与服务创新。大数据蕴藏着巨大的商业价值。对于大数据时代下的用户来说,其所需存储、处理的数据量大,数据来源和数据结构繁多复杂,为大数据的分析和应用带来很多挑战。
目前,出于各种数据应用需求,数据的需求方和供应方之间往往通过数据流通进行数据的交换。为了检验数据流通过程中的数据质量,需要在数据流通的执行过程中进行数据的实时流分析。现有的大数据分析方法主要有两种。第一种方法,先将流通中获得的数据保存在批处理平台中,然后再定时取出数据,并对取出的数据进行分析,此种方式并不能实现对大数据的实时流分析。第二种方法,通常将流通中的数据放入分布式消息订阅发布系统kafka中,再配合数据流处理系统Storm或Spark-Streaming进行实时流分析。但是,kafka只追求高的数据吞吐量,其在存储多个不同上层业务ID下的多个批次的数据时,很容易丢失数据,而且kafka本身应用在数据流通领域时的事务性差;storm或Spark-Streaming通常用来对无限量的数据流进行分析,不同批次的待分析数据会源源不断的加入Storm或Spark-Streaming的分析机中,当分析机发出错误警报时,并不能确定是哪个批次的数据出现了错误。若使用分布式存储和计算平台MapR-Streaming来代替kafka,则需要增加大量的成本投入。
发明内容
本发明解决的技术问题是如何提高对大量业务ID下的流通数据进行流分析的准确性。
为解决上述技术问题,本发明实施例提供了一种数据碰撞流分析方法,包括如下步骤:接收碰撞;查询确定空闲的碰撞线程;利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。
可选的,所述数据碰撞流分析方法还包括:将所述分析结果发送至所述碰撞的发起端。
可选的,所述接收碰撞包括:恢复前次已经接收且在碰撞执行过程中被中断的碰撞;接收当前新的碰撞。
可选的,所述接收碰撞还包括:预存所述碰撞。
可选的,所述查询确定空闲的碰撞线程包括:确定所述碰撞的类型;查询确定类型与所述碰撞的类型相匹配的空闲的碰撞线程。
可选的,所述查询确定空闲的碰撞线程包括:确定所述碰撞的类型;轮询当前运行的碰撞线程的数量;若所述当前运行碰撞线程的数量小于预设阈值,则随机选择类型与所述碰撞的类型相匹配的空闲的碰撞线程;若所述当前运行的碰撞线程的数量大于或等于所述预设阈值,则开始下一轮轮询。
可选的,利用所述空闲的碰撞线程进行分析包括:获取ID数据,所述碰撞是由所述ID数据标识的;向所述碰撞的需求方发送所述ID数据,以获取所述碰撞对应的数据并进行分析。
可选的,如果在利用所述空闲的碰撞线程执行所述碰撞的过程中发生故障,则由运行所述碰撞线程的主服务器的第一后备服务器继续执行所述碰撞,如果所述第一后备服务器执行所述碰撞过程中发生故障,则由所述主服务器的第二后备服务器继续执行所述碰撞,其中,所述主服务器的第一后备服务器还用作另一主服务器的第二后备服务器,所述主服务器的第二后备服务器还用作另一主服务器的第一后备服务器。
为解决上述技术问题,本发明实施例还提供了一种数据碰撞流分析装置,包括:接收模块,适于接收碰撞;调度模块,适于查询确定空闲的碰撞线程;分析模块,适于利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。
可选的,所述数据碰撞流分析装置还包括:分析结果发送模块,用于将所述分析结果发送至所述碰撞的发起端。
可选的,所述接收模块包括:恢复模块,适于恢复前次已经接收且在碰撞执行过程中被中断的碰撞;监听模块,适于接收当前新的碰撞。
可选的,所述接收模块还包括:碰撞预存模块,适于预存所述碰撞。
为解决上述技术问题,本发明实施例还提供了一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行前述的数据碰撞流分析方法的步骤。
为解决上述技术问题,本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行前述的数据碰撞流分析方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在本发明实施例中,通过接收碰撞,查询确定空闲的碰撞线程,利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果来实现数据碰撞流分析,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。由此,当对大量业务ID下的流通数据进行分析时,可以有效避免流通数据的丢失,提高数据分析的准确性。
进一步,在当前碰撞执行之前,恢复前次已经接收且在碰撞执行过程中被中断的碰撞。由此,因故障造成的前次已中断的碰撞能够继续执行完毕,保证了数据碰撞执行过程中的事务性。
进一步,获取能够标识碰撞的ID数据,向所述碰撞的需求方发送所述ID数据,以获取所述碰撞对应的数据并进行分析。由此,可以根据具体的ID数据来完成定制化的数据流分析。
附图说明
图1是本发明实施例的一种数据碰撞流分析方法的流程图;
图2是本发明实施例的碰撞线程执行中发生故障后的故障迁移示意图;
图3是图1中步骤S12的一个具体实施方式的流程图;
图4是图1中步骤S12的另一个具体实施方式的流程图;
图5是本发明实施例的一种数据碰撞流分析装置的结构示意图。
具体实施方式
本领域技术人员理解,如背景技术所言,现有的大数据分析方法主要有两种。第一种方法,先将流通中获得的数据保存在批处理平台中,然后再定时取出数据进行分析,此种方式并不能实现数据的实时流分析。第二种方法,通常将流通中的数据放入分布式消息订阅发布系统kafka中,再配合数据流处理系统Storm或Spark-Streaming进行实时流分析。但是,kafka在存储多个不同上层业务ID下的多个批次的数据时,很容易丢失数据,而且kafka本身应用在数据流通领域时的事务性差;Storm或Spark-Streaming通常用来对无限量的数据流进行分析,不同批次的待分析数据会源源不断的加入Storm或Spark-Streaming的分析机中,当分析机发出错误警报时,并不能确定是哪个批次的数据出现了错误。若使用分布式存储和计算平台MapR-Streaming来代替kafka,则需要增加大量的成本投入。
本发明实施例提供了一种数据碰撞流分析方法和装置、存储介质、终端,当对大量业务ID下的流通数据进行分析时,可以有效避免流通数据的丢失,提高数据分析的准确性。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例中,“数据碰撞”、“碰撞”可以表示上层业务ID下属的点对点式数据流通。其中,所述上层业务ID可以用于唯一标识上层的业务,也可以唯一标识该业务下的数据碰撞。例如,所述上层业务ID可以为“身份信息的配送业务”或者“性别信息的配送业务”或者其他类型的业务。
所述上层业务ID下属的点对点式数据流通可以包括业务涉及的数据需求方和供应方之间传送的数据,这样的数据可以是一轮交互中的数据,也可以是多轮交互中的数据。所述的“数据碰撞”可以具有事务性,其事务性主要体现在如下几个方面:
原子性:数据碰撞中的数据流通包括“数据供应方发送数据”和“数据需求方接收数据”,数据流通的成功要必须要保证“数据供应方发送数据”和“数据需求方接收数据”要么都成功,要么都不成功,这就是数据发送的原子性。
一致性:即“数据供应方发送数据”和“数据需求方接收数据”不论从数量和类型上都应该保持相同。
隔离性:即“数据供应方发送数据”和“数据需求方接收数据”之间有一个时间差,在这个时间差里,外界无法对数据进行查询访问。即使是在数据实时分析的过程中,也是要等数据到达数据需求方之后,数据分析方才能向数据需求方的前置机发送数据请求,提取数据需求方接收到的数据,并对该数据进行实时分析。
持久性:即“数据供应方发送数据”和“数据需求方接收数据”这个操作序列被记录下来,而且所述记录能够被一直保存。
其中,某上层业务ID的ID数据可以引起相应的碰撞。进一步而言,也可以将该ID数据进行分片,每一个数据分片可以分别引起一个碰撞。其中,一个数据分片所对应的碰撞可以被一个服务器代理,多个数据分片的碰撞也可以被同一个服务器代理。
为了实现对大量业务ID下的流通数据进行实时流分析,本发明实施例提供了一种数据碰撞流分析方法。
图1是本发明实施例的一种数据碰撞流分析方法的流程图。
参考图1,所述数据碰撞流分析方法包括如下步骤:
步骤S11:接收碰撞;
步骤S12:查询确定空闲的碰撞线程;
步骤S13:利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。
进一步地,在步骤S11的具体实施中,所述接收碰撞可以包括:恢复前次已经接收且在碰撞执行过程中被中断的碰撞。此外,所述接收碰撞也可以包括:接收新的碰撞。其中,所述“被中断”可以包括如下两种情况:第一种情况,碰撞正在执行,由于系统网络故障或突然关机等意外,终止了碰撞的执行过程;第二种情况,碰撞已经执行完毕,只是数据供应方发出的数据还未到达碰撞的数据需求方。由此,碰撞恢复能够使未传送完毕的数据继续传送,未执行的碰撞过程继续执行,从而保证了碰撞的事务性。
在一个具体的实施例中,碰撞恢复可以选用手动恢复方式来实现,例如,采用人工手动恢复供电或手动排除网络故障等方式。
在另一个具体的实施例中,碰撞恢复可以选用分布式环形故障迁移的方式来实现。请参考图2,图2是本发明实施例的碰撞线程执行中发生故障后的故障迁移示意图。具体地,运行碰撞线程的主服务器1具有第一后备服务器2和第二后备服务器3。
在此方式下,对每个数据分片(partition)都可以做双机迁移备份,即一个数据分片除了可以对应主服务器1外,其还可以备份在两个后备服务器中,例如,后备服务器A和后备服务器B。对于同一后备服务器,其可以作为奇数编号数据分片的第一后备服务器,同时可以作为偶数编号数据分片的第二后备服务器。后备服务器B可以作为偶数编号数据分片的第一后备服务器,同时可以作为奇数编号数据分片的第二后备服务器。
如果在利用所述空闲的碰撞线程执行所述碰撞的过程中发生故障,可以由运行所述碰撞线程的主服务器1的第一后备服务器2继续执行所述碰撞,如果所述第一后备服务器2执行所述碰撞过程中发生故障,可以由所述主服务器1的第二后备服务器3继续执行所述碰撞。
其中,所述的主服务器1和各个后备服务器可以对数据分片的占用信息进行定时检测。其中,每个服务器可以被看做一个节点。更具体而言,主服务器1、第一后备服务器2和第二后备服务器3可以进行定时检测,每个服务器可以向其他两个服务器发送n次请求,在向其他服务器发送的n次请求中有一次成功即可,从而获得其他各服务器返回的数据,也就是服务器中数据分片的占用信息,同时标记其他各服务器连续未返回数据的次数。其中,n为正整数。
程序实现如下:Map<partition,List<(server,是否占用)>>:partition所属的节点序列。
其中,Map代表所有的数据分片,List代表每个数据分片对应的后备服务器的顺序序列,server代表服务器,partition代表数据分片。
若连续未返回数据的次数超过预设阈值,则认为该被检测的服务器发生故障,需要执行碰撞恢复。
若连续未返回数据的次数未超过预设阈值,则不进行碰撞恢复的后续操作。
对于存在服务器故障的情况下,例如主服务器1宕机,则此时第一后备服务器2应当执行主服务器1未宕机之前所应当执行的碰撞,即对于第一后备服务器2而言,数据分片当前所属的节点为第一后备服务器2本身,此时第一后备服务器2开始执行如下步骤:
a)如果第一后备服务器2发现所属数据分片未被自己监听,且数据分片未被其他服务器占用,则直接进行碰撞恢复,即查找在主服务器1中已被接收但未完成的碰撞,将查找到的未完成的碰撞放入自己的内存队列中。
b)开启监听,接收新的碰撞。
在第一后备服务器2工作过程中,若此时主服务器1的宕机问题已经解决,则第一后备服务器2会发现数据分片所属的节点已不为自己本身,则可以执行如下步骤:
a)如果第一后备服务器2发现所述数据分片已被自己监听,则停止监听,清空内存队列中的数据分片(如果存在的话),并停止执行中的碰撞,标记数据分片不被自己占用。其中,每个碰撞用碰撞实例名或ip+端口号作唯一命名标识。
此时,被解除占用标记的数据分片处在未被占用状态,则该数据分片原本所隶属的主服务器1将会发现该数据分片未被自己监听且未被其他服务器占用,则该主服务器1会直接恢复该数据分片所对应的被中断的碰撞。
进一步地,所述恢复的碰撞与当前新的碰撞被一起重新标记为已接收状态,并可以对所述碰撞进行预存,防止数据丢失。
接下来,可以将已接收的碰撞进行分类,并按照碰撞的类型放入不同的准备队列。具体地,可以按照标识碰撞的ID数据对碰撞进行分类,例如:查询身份信息的碰撞、查询信用卡信息的碰撞等。
需要说明的是,对所述碰撞的分类可以采用任意可实施的分类方式,本发明实施例对此不做限制。
当碰撞被按照类型放入不同的准备队列后,需要为已经标记为接收状态的碰撞查询确定空闲的碰撞线程。
作为一个非限制性的实施例,具体地,结合图1和图3,所述步骤S12的实施可以包括如下步骤:
步骤S21:确定所述碰撞的类型;
步骤S22:查询确定类型与所述碰撞的类型相匹配的空闲的碰撞线程。
其中,所述碰撞的类型可以通过前述的碰撞分类方法而得到。
具体地,在确定碰撞的类型时,可以按照标识碰撞的ID数据对碰撞进行分类,例如:查询身份信息的碰撞、查询信用卡信息的碰撞等。
作为另一个非限制性的实施例,具体地,结合图1和图4,所述步骤S12的实施也可以包括如下步骤:
步骤S31:确定所述碰撞的类型;
步骤S32:轮询当前运行的碰撞线程的数量;
步骤S33:判断所述当前运行碰撞线程的数量是否小于预设阈值,当判断结果为是时,可以执行步骤S34,反之,则可以执行步骤S32;
步骤S34:若当前运行碰撞线程的数量小于预设阈值,则随机选择类型与所述碰撞的类型相匹配的空闲的碰撞线程。
具体地,在确定碰撞的类型时,可以参照前述碰撞类型的分类方式。
可以理解的是,所述当前运行碰撞线程的预设阈值可以根据整个计算机系统或服务器的容量进行匹配设置,本发明实施例对此不做限制。
请继续参考图1,在步骤S13中,可以利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。
在具体实施碰撞分析时,可以提前获取标识碰撞的ID数据,再向所述碰撞的需求方发送所述ID数据,以获取所述碰撞对应的数据并进行分析,得到分析结果。在一个非限制性的例子中,碰撞分析的具体过程可以包括:获取ID数据并加入发送阻塞队列;从发送阻塞队列获取ID数据,向需方前置机发起ID数据请求并进行实时分析,其中,需方前置机与数据需求方对应,例如可以是一一对应;将分析结果放入持久化队列;从持久化队列获取分析结果,按事务进行数据持久化。所述数据持久化可以指将内存中的数据模型转化为可存储的模型。另外,在每一次碰撞完成后,可以将其状态修改为成功或失败。
进一步地,获取所述碰撞对应的数据可以通过数据抽样获得,所述数据抽样可以进行数据的全部抽取或部分抽取,进而对抽取的数据进行分析,得到分析结果。
在一个具体应用场景中,数据流分析的定制方需要对某具体业务ID(例如:一个班级中所有学生的学号信息)下的数据进行分析,则数据分析方只需将该具体业务ID数据发送给碰撞的需求方,该碰撞的需求方响应该具体业务ID数据,将其经过碰撞所获得的班级中所有学生的学号信息提供给数据分析方,数据分析方对该班级中所有学生的学号信息进行分析,并对分析结果进行持久化处理后,发送给数据流分析的定制方。
进一步而言,所述分析可以采用的方式有RTB有效性分析或标签碰撞投票分析。其中,RTB有效性分析是一种定制化的聚合计算方式,可以进行原子变量的聚合计算。由此,可以计算有效、无效、不能确定的ID数据数量。另外,标签碰撞投票分析也是一种定制化的聚合计算方式,其主要用于需方从多个供方处获取数据后,对这些获取的数据进行投票,选取票数最多的标签值为正确值,同时同步计算各个供方的准确率,标签碰撞投票分析也可以实现原子变量的聚合计算。
需要说明的是,可以根据具体的应用场合或待分析的数据类型或分析成本来适应性的选择所使用的分析方式,本发明实施例对此不做限制。
优选地,每一个碰撞线程在执行分析操作时相互独立,以保障线程安全,提高定制化流分析的准确性。
在一个具体的实施例中,还可以对所述分析结果进行预存,以防止分析结果数据丢失。
进一步地,所述分析结果可以以文件的形式预存在分布式文件系统或文件服务器上,也可以按照具体的需求存储在数据库中,本发明实施例对此不做限制。
具体地,所述分布式文件系统可以选用Fastdfs或者HDFS(Hadoop DistributedFile System),文件服务器可以采用安全文件传送协议sftp(Secure File TransferProtocol)类型的服务器,所述数据库可以采用开源的数据库redis(Remote DictionaryServer)。
接下来,还可以将分析结果发送给碰撞的发起端。更具体地,可以采用队列发送或restful服务发送的形式对分析结果进行发送。其中,队列发送可以提高发送效率,restful服务发送可以提供统一的数据接收接口。在具体应用时,也可以根据不同场合适应性的选择其他不同的发送方式,本发明实施例对此不做限制。
进一步地,若发送过程发生异常,可以通过hystrix方式或恢复队列重试方式进行发送过程的自动恢复。其中,hystrix方式主要用于解决因雪崩效应引起的发送错误,恢复队列重试方式主要用于对发送失败的消息进行预存与再次发送。当然,本领域技术人员也可以根据具体需要而适应性的采用其他的解决过程异常的方式,本发明实施例对此不做限制。
由上,采用本发明实施例中的方案,通过接收碰撞,查询确定空闲的碰撞线程,利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果来实现数据碰撞流分析,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。当对大量业务ID下的流通数据进行分析时,可以有效避免流通数据的丢失,提高数据分析的准确性。通过在当前碰撞执行之前,恢复前次已经接收且在碰撞执行过程中被中断的碰撞。由此,因故障造成的前次已中断的碰撞能够继续执行完毕,保证了数据碰撞执行过程中的事务性。通过获取能够标识碰撞的ID数据,向所述碰撞的需求方发送所述ID数据,以获取所述碰撞对应的数据并进行分析。由此,可以根据具体的ID数据来完成定制化的数据流分析。
图5是本发明实施例的一种数据碰撞流分析装置的结构示意图。本领域技术人员理解,本发明实施例中的所述数据碰撞流分析装置实施上述图1至图4所述的方法技术方案。
具体的,请参考图5,在本发明实施例中,所述数据碰撞流分析装置可以包括:接收模块40,适于接收碰撞;调度模块41,适于查询确定空闲的碰撞线程;分析模块42,适于利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞。
进一步地,所述数据碰撞流分析装置还可以包括:分析结果预存模块43,用于预存所述分析结果,防止数据丢失。
进一步地,所述数据碰撞流分析装置还可以包括:分析结果发送模块44,用于将所述分析结果发送至所述碰撞的发起端45。
进一步地,所述接收模块40可以包括:恢复模块401,适于恢复前次已经接收且在碰撞执行过程中被中断的碰撞;监听模块402,适于接收当前新的碰撞。
进一步地,所述接收模块40还可以包括:碰撞预存模块403,适于预存所述碰撞。
进一步地,所述分析模块42可以包括碰撞执行模块421和抽样模块422,所述碰撞执行模块421用于执行所述碰撞,所述抽样模块422用于全部或部分抽取所述碰撞执行完成后得到的数据,所述分析模块42对这些数据进行分析。
关于图4所示的数据碰撞流分析装置的工作原理、工作方式的更多信息,可以参照图1至图3及其相关描述,这里不再赘述。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1至图4所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
进一步地,本发明实施例还公开一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1至图4所示实施例中所述的方法技术方案。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的最宽的范围为准。
Claims (9)
1.一种数据碰撞流分析方法,其特征在于,包括如下步骤:
接收碰撞,包括:恢复前次已经接收且在碰撞执行过程中被中断的碰撞;
接收当前新的碰撞;
查询确定空闲的碰撞线程;
利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞;
如果在利用所述空闲的碰撞线程执行所述碰撞的过程中发生故障,则由运行所述碰撞线程的主服务器的第一后备服务器继续执行所述碰撞,如果所述第一后备服务器执行所述碰撞过程中发生故障,则由所述主服务器的第二后备服务器继续执行所述碰撞,其中,所述主服务器的第一后备服务器还用作另一主服务器的第二后备服务器,所述主服务器的第二后备服务器还用作另一主服务器的第一后备服务器;
所述主服务器与各个后备服务器对数据分片的占用信息进行定时检测;当所述主服务器发生故障时,所述第一后备服务器查找所述主服务器已接收但未完成的碰撞,并将所述未完成的碰撞加入自身的内存队列中,并开启监听以接收所述新的碰撞;在所述第一后备服务器工作过程中,所述主服务器的故障排除时,所述第一后备服务器停止执行碰撞,由所述主服务器恢复所述未完成的碰撞;所述恢复的碰撞与所述新的碰撞被一起重新标记为已接收状态,并对所述碰撞进行预存。
2.根据权利要求1所述的数据碰撞流分析方法,其特征在于,还包括:将所述分析结果发送至所述碰撞的发起端。
3.根据权利要求1所述的数据碰撞流分析方法,其特征在于,所述查询确定空闲的碰撞线程包括:确定所述碰撞的类型;查询确定类型与所述碰撞的类型相匹配的空闲的碰撞线程。
4.根据权利要求1所述的数据碰撞流分析方法,其特征在于,所述查询确定空闲的碰撞线程包括:
确定所述碰撞的类型;
轮询当前运行的碰撞线程的数量;
若所述当前运行碰撞线程的数量小于预设阈值,则随机选择类型与所述碰撞的类型相匹配的空闲的碰撞线程;
若所述当前运行的碰撞线程的数量大于或等于所述预设阈值,则开始下一轮轮询。
5.根据权利要求1所述的数据碰撞流分析方法,其特征在于,利用所述空闲的碰撞线程进行分析包括:
获取ID数据,所述碰撞是由所述ID数据标识的;
向所述碰撞的需求方发送所述ID数据,以获取所述碰撞对应的数据并进行分析。
6.一种数据碰撞流分析装置,其特征在于,包括:
接收模块,适于接收碰撞,包括:恢复前次已经接收且在碰撞执行过程中被中断的碰撞;接收当前新的碰撞;
调度模块,适于查询确定空闲的碰撞线程;
分析模块,适于利用所述空闲的碰撞线程执行所述碰撞并进行分析,以得到分析结果,其中,每一空闲的碰撞线程同一时间仅执行和分析单个碰撞;如果在利用所述空闲的碰撞线程执行所述碰撞的过程中发生故障,则由运行所述碰撞线程的主服务器的第一后备服务器继续执行所述碰撞,如果所述第一后备服务器执行所述碰撞过程中发生故障,则由所述主服务器的第二后备服务器继续执行所述碰撞,其中,所述主服务器的第一后备服务器还用作另一主服务器的第二后备服务器,所述主服务器的第二后备服务器还用作另一主服务器的第一后备服务器;
所述主服务器与各个后备服务器对数据分片的占用信息进行定时检测;当所述主服务器发生故障时,所述第一后备服务器查找所述主服务器已接收但未完成的碰撞,并将所述未完成的碰撞加入自身的内存队列中,并开启监听以接收所述新的碰撞;在所述第一后备服务器工作过程中,所述主服务器的故障排除时,所述第一后备服务器停止执行碰撞,由所述主服务器恢复所述未完成的碰撞;所述恢复的碰撞与所述新的碰撞被一起重新标记为已接收状态,并对所述碰撞进行预存。
7.根据权利要求6所述的数据碰撞流分析装置,其特征在于,还包括:分析结果发送模块,适于将所述分析结果发送至所述碰撞的发起端。
8.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1-5任一项所述的数据碰撞流分析方法的步骤。
9.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1-5任一项所述数据碰撞流分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690385.7A CN108984285B (zh) | 2018-06-28 | 2018-06-28 | 一种数据碰撞流分析方法及装置、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690385.7A CN108984285B (zh) | 2018-06-28 | 2018-06-28 | 一种数据碰撞流分析方法及装置、存储介质、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984285A CN108984285A (zh) | 2018-12-11 |
CN108984285B true CN108984285B (zh) | 2021-10-15 |
Family
ID=64539514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810690385.7A Active CN108984285B (zh) | 2018-06-28 | 2018-06-28 | 一种数据碰撞流分析方法及装置、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984285B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188570A (zh) * | 2006-11-17 | 2008-05-28 | 鸿富锦精密工业(深圳)有限公司 | 即时消息处理系统及方法 |
CN101325561A (zh) * | 2007-06-12 | 2008-12-17 | 阿里巴巴集团控股有限公司 | 一种处理电子邮件的方法、装置及系统 |
WO2012065520A1 (zh) * | 2010-11-19 | 2012-05-24 | 深圳华大基因科技有限公司 | 文件传输系统及方法 |
CN103036701A (zh) * | 2012-04-01 | 2013-04-10 | 浙江宇视科技有限公司 | 一种跨网段的n+1备用方法及装置 |
CN104834558A (zh) * | 2015-05-19 | 2015-08-12 | 北京京东尚科信息技术有限公司 | 一种数据处理的方法及系统 |
CN106020954A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市永兴元科技有限公司 | 线程管理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103856440B (zh) * | 2012-11-29 | 2015-11-18 | 腾讯科技(深圳)有限公司 | 一种基于分布式总线的消息处理方法、服务器和系统 |
US10776167B2 (en) * | 2016-09-19 | 2020-09-15 | Texas Instruments Incorporated | Bandwidth controlled data synchronization for image and vision processor |
CN107169796A (zh) * | 2017-05-12 | 2017-09-15 | 深圳市浩天投资有限公司 | 一种用户行为数据的分析方法、系统及计算机可读存储介质 |
-
2018
- 2018-06-28 CN CN201810690385.7A patent/CN108984285B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188570A (zh) * | 2006-11-17 | 2008-05-28 | 鸿富锦精密工业(深圳)有限公司 | 即时消息处理系统及方法 |
CN101325561A (zh) * | 2007-06-12 | 2008-12-17 | 阿里巴巴集团控股有限公司 | 一种处理电子邮件的方法、装置及系统 |
WO2012065520A1 (zh) * | 2010-11-19 | 2012-05-24 | 深圳华大基因科技有限公司 | 文件传输系统及方法 |
CN103036701A (zh) * | 2012-04-01 | 2013-04-10 | 浙江宇视科技有限公司 | 一种跨网段的n+1备用方法及装置 |
CN104834558A (zh) * | 2015-05-19 | 2015-08-12 | 北京京东尚科信息技术有限公司 | 一种数据处理的方法及系统 |
CN106020954A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市永兴元科技有限公司 | 线程管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
大数据环境喜爱的分布式数据流处理关键技术研究;陈付梅等;《计算机应用》;20170310;第37卷(第3期);第620-627页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108984285A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536532B (zh) | 一种批量任务处理方法及系统 | |
US9369521B2 (en) | Naming of distributed business transactions | |
CN111447102B (zh) | Sdn网络设备访问方法、装置、计算机设备及存储介质 | |
JP6686033B2 (ja) | メッセージをプッシュするための方法および装置 | |
KR100905353B1 (ko) | 거래 시스템 | |
CN110730246A (zh) | 一种微服务架构下的分布式链路跟踪方法 | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN110995513A (zh) | 物联网系统中的数据发送、接收方法、物联网设备及平台 | |
CN112822260B (zh) | 文件传输方法及装置、电子设备、存储介质 | |
CN111106976A (zh) | 一种cdn网络的探测方法、装置、电子设备及可读存储介质 | |
CN105808619A (zh) | 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置 | |
CN113626218A (zh) | 数据处理方法、装置、存储介质及计算机设备 | |
CN108984285B (zh) | 一种数据碰撞流分析方法及装置、存储介质、终端 | |
CN103731315A (zh) | 一种服务器故障检测方法 | |
CN111698301A (zh) | 一种保证服务延续的服务管理方法、装置及存储介质 | |
CN112131180B (zh) | 数据上报方法、装置以及存储介质 | |
CN115065510A (zh) | 登录方法、装置、系统、电子设备及可读存储介质 | |
CN112950447B (zh) | 资源调度方法、装置、服务器及存储介质 | |
CN112818204A (zh) | 一种业务的处理方法、装置、设备及存储介质 | |
CN110138634B (zh) | 一种重点数据的监控方法及终端 | |
CN109034768B (zh) | 财务调拨方法、装置、计算机设备和存储介质 | |
CN105095248A (zh) | 一种数据库集群系统及其恢复方法、管理节点 | |
CN117411929B (zh) | 业务流程监控方法、装置、设备及存储介质 | |
CN106851703B (zh) | 云接入控制器处理告警信息的方法和装置 | |
CN114637758A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |