CN113220473B - 数据存储方法及系统 - Google Patents
数据存储方法及系统 Download PDFInfo
- Publication number
- CN113220473B CN113220473B CN202110429975.6A CN202110429975A CN113220473B CN 113220473 B CN113220473 B CN 113220473B CN 202110429975 A CN202110429975 A CN 202110429975A CN 113220473 B CN113220473 B CN 113220473B
- Authority
- CN
- China
- Prior art keywords
- data packet
- offset
- server
- spark streaming
- data
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 50
- 230000008569 process Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 abstract description 63
- 238000004891 communication Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 208000002193 Pain Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种数据存储方法及系统,该方法包括:若第一真实服务器在数据传输的过程中出现中断,则控制第一真实服务器不再将当前数据包写入消息队列;根据第一真实服务器最近一次写入的数据包在消息队列中的位置,获取最近一次写入的数据包的偏移量后加1,获取第一偏移量;将第一偏移量反馈给客户端,以供客户端将第一偏移量所属的数据包发送给服务端,服务端的第二真实服务器将接收的数据包以追加的方式写入消息队列中;通过第一Spark Streaming服务器从消息队列中读取第一偏移量所属的数据包,对第一偏移量所属的数据包进行处理,将处理后的数据包存储到数据存储系统。本发明实现保证数据传输的完整性的同时,提高传输效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据存储方法及系统。
背景技术
通过网络进行数据共享存储,已经成为信息交流的一种主流方式。但是,随着通信技术的发展与进步,数据的产量呈几何式增长,从而如何将大量的数据存储在资源共享平台是亟待解决的问题。
目前,相关学者基于LVS(Linux Virtual Server,Linux虚拟服务器)的FTP(FileTransfer Protocol,文件传输协议)资源共享平台负载均衡方案实现对数据的存储。该数据存储方法包括两部分,一部分是在数据传输过程中发生中断后,可以通过FTP文件断点续传方法实现从传输中断处对数据进行续传,保证了高效传输数据;另一部分是采用LVS负载均衡技术,实现数据资源共享存储。
但是,在数据传输过程中若LVS架构中的RS(Real Server,真实服务器)出现变更或中断时,采用FTP文件断点续传方法,则数据传输系统会将数据传输任务重新分配给新的RS,并创建新的网络连接。此时,由于旧的RS与负载均衡层失去联系,导致新旧RS在数据断点位置信息上不同步。且新的RS获取数据流续传位置信息后,旧的RS依然把内存中已经接收到的数据流向共享存储中写入,导致部分数据流片段重复。需要丢弃整个批次的数据并重新传输后存储在资源共享平台,降低了数据存储的效率。
发明内容
本发明提供一种数据存储方法及系统,用以解决现有技术中部分数据流片段重复时,需要重新将整个批次的数据写入资源共享平台,存储效率低的缺陷,实现在旧服务器中断时,对旧服务器当前待传输数据进行准确定位后,通过新服务器继续对当前待传输数据进行传输后存储在资源共享平台,提高数据存储的效率。
本发明提供一种数据存储方法,包括:
若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;
根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;
将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;
通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统。
根据本发明提供的一种数据存储方法,对所述第一偏移量所属的数据包进行处理之后,还包括:
将处理后的数据包的偏移量写入数据库;
相应地,所述通过第一Spark Streaming服务器从所述消息队列中读取所述所述第一偏移量所属的数据包,包括:
若所述第一Spark Streaming服务器出现宕机,则通过第二Spark Streaming服务器从所述数据库中读取所述第一Spark Streaming服务器最近一次处理的数据包的偏移量,将所述最近一次处理的数据包的偏移量加1,获取第二偏移量,并从所述消息队列中读取所述第二偏移量所属的数据包。
根据本发明提供的一种数据存储方法,所述第一Spark Streaming服务器和述第二Spark Streaming服务器集成在Sparking Streaming集群中。
根据本发明提供的一种数据存储方法,对所述第一偏移量所属的数据包进行处理之后,还包括:
计算处理后的数据包的偏移量与所述消息队列中最后一个数据包的偏移量之间的比值,将所述比值作为所述第一Spark Streaming服务器的任务进度,并将所述任务进度写入数据库。
根据本发明提供的一种数据存储方法,对所述第一偏移量所属的数据包进行处理之前,还包括:
计算所述第一Spark Streaming服务器对所述第一偏移量所属的数据包进行处理之前的预设时长内处理的所有数据包的数量和所述预设时长之间的比值,获取所述第一Spark Streaming服务器的处理效率,并将所述处理效率写入数据库。
根据本发明提供的一种数据存储方法,在获取所述第一Spark Streaming服务器的处理效率之后,还包括:
若所述处理效率小于预设阈值,则控制所述第一Spark Streaming服务器停止运行。
根据本发明提供的一种数据存储方法,所述Kafka分布式集群包括多个消息队列,每个消息队列中的数据包为由客户端发送的同一文件下的数据包。
本发明还提供一种数据存储系统,包括:
控制模块,用于若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;
获取模块,用于根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;
发送模块,用于将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;
存储模块,用于通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据存储方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据存储方法的步骤。
本发明提供的数据存储方法及系统,一方面通过在第一真实服务器传输当前数据包的过程中出现中断时,控制第一真实服务器不在将当前数据包写入消息队列中,有效解决第一真实服务器中断后,继续将内存中的数据包存储到数据存储系统,导致数据存储系统中数据包重复的问题;另一方面根据第一真实服务器最近一次处理后的数据包的偏移量,快速准确定位断点续传数据包的位置,使得第一真实服务器和第二真实服务器同步断点续传数据包的位置信息,且只需要传输一次就可以将整个文件中的所有数据包完整地存储在数据存储系统,有效保证数据传输的完整性和数据存储的准确性,提高传输的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据存储方法的流程示意图之一;
图2是本发明提供的数据存储方法中DPM的结构示意图;
图3是现有技术提供的LVS集群的结构示意图;
图4是本发明提供的数据存储方法的流程示意图之二;
图5是本发明提供的数据存储系统的结构示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明的一种数据存储方法,包括:步骤101,若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;
其中,数据包所属的文件可以是遥感数据文件或摄像系统采集的视频文件等,本实施例不限于数据包所属的文件的类型。
第一真实服务器用于将客户端发送的数据包存储在消息队列中,实现数据的快速存储。
第一真实服务的数量可以根据实际需求进行设置。需要说明的是,当存在多个第一真实服务器时,各第一真实服务器可以并行传输相应的数据包。
其中,第一真实服务器在数据传输过程中出现中断的情况包括第一真实服务器连接中断或切换至其他真实服务器,导致第一真实服务器不能接收到客户端发送的数据包,本实施例不限于上述中断情况。
数据存储系统为HDFS(Commodity Hardware Distributed File System,通用硬件上的分布式文件系统)或GFS(Google File System,Google文件系统)等,本实施例不限于数据存储系统的类型。
需要说明的是,本实施例提出的数据存储方法基于如图2所示的DPM(Distributeddata processing mechanism,分布式数据处理机制)实现。DPM为真实服务器和数据存储系统之间的中间件。
其中,图2中Broker为Kafka分布式集群的任一消息队列所属的服务器,Consumer为Spark Streaming(离散化数据流)服务器,ZOOKEEPEER为一个分布式的、开放源码的分布式应用程序协调服务器。
基于DPM进行数据存储的步骤为,真实服务服务器从客户端获取数据包,并将获取的数据包依次存储在Kafka分布式集群的消息队列中;然后,Spark Streamin服务器从Kafka分布式集群的消息队列中读取数据包。
在数据传输过程中,若第一真实服务器未出现中断,则第一真实服务器将从客户端获取的数据包持续写入消息队列。
若第一真实服务器出现中断,且需要续传数据包时,可以通过轮询调度算法指定第二真实服务器,以替换第一真实服务,并通过第二真实服务器继续对当前数据包进行传输。
如图3所示,现有技术中基于LVS集群架构对数据进行存储。其中,LVS集群分为三层结构,分别为LB(Load Balance,负载均衡层)、RS和SS(Storage Server存储服务器层)。LB位于整个LVS集群的前端,负责处理客户的服务请求。因此,对于整个服务器集群,LB是连接请求的入口。RS是一组真正执行客户请求的服务器,由多个功能相同的真实服务器组成,用于执行由LB分配的FTP、WEB(网站)、MAIL(邮箱)等服务。SS为RS提供数据存储服务,共享存储技术的成功应用极大地节省了数据存储空间,为数据传输中心提供灵活的存储服务。
但是,在RS的节点变更或连接中断时,旧RS还会继续将内存数据传输到LB,使得LB中存储的数据存在重复片段,数据存储准确性低。
而本实施例在第一真实服务器传输数据出现中断时,则控制第一真实服务器不再将当前数据包写入Kafka分布式集群的消息队列中,并及时切换至第二真实服务器。第二真实服务器继续向消息队列写入当前数据包,以及当前数据包之后的数据包,有效避免消息队列中出现重复的数据包,进而避免数据存储系统中的数据包重复,有效保证数据存储的准确性。
步骤102,根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;
其中,Kafka分布式集群中消息队列中存储的数据包均具有相应的偏移量,且每个数据包的偏移量与数据包在其所在文件中的位置或存储在消息队列中的位置相关。例如,第一个写入消息队列中的数据包的偏移量为1,第二个写入消息队列中的数据包的偏移量为2。
在第一真实服务器出现中断时,根据第一真实服务器每次写入的数据包位于Kafka分布式集群中消息队列的位置,可以直接在消息队列中查询第一真实服务器最近一次传输的数据包的偏移量。
然后,将最近一次处理后的文件的偏移量加1,获取第一偏移量。
需要说明的是,第一偏移量即是断点续传数据包的偏移量。
本实施例通过第一真实服务器最近一次处理后的文件的偏移量,可以准确定位到第一真实服务器传输的断点续传数据包的位置。
步骤103,将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;
具体地,第一真实服务器出现中断时,可以使用第二真实服务器替换第一真实服务器。第二真实服务器继续将断点续传数据包写入消息队列中。
首先,客户端获取断点续传数据包的偏移量,然后按照所获取的偏移量继续向第二真实服务器上传数据包。其中,此时,客户端上传的数据包包括断点续传数据包和断点续传数据包之后的数据包。
然后,第二真实服务器接收数据包,继续将接收的数据包写入消息队列中。
其中,服务端集成有多个真实服务器,服务端集的真实服务器的数量可以根据实际需求进行设置,不仅限于本实施例中的第一真实服务器和第二真实服务器。
在第一真实服务器出现中断时,通过第一偏移量可以准确定位断点续传数据包的位置,并切换至第二真实服务器继续传输数据,使得第一真实服务器和第二真实服务器的断点续传数据包的位置信息同步,进而有效避免数据存储系统中存储的数据包重复,且通过第一偏移量可以快速定位断点续传数据包的位置,只需要传输一次就可以将文件中所有的数据包完整地存储在数据存储系统,有效提高传输的效率。
步骤104,通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统。
具体地,第一Spark Streaming服务器可以为一个或多个,本实施例不限第一Spark Streaming服务器的数量。
需要说明的是,当第一Spark Streaming服务器为多个时,各第一SparkStreaming服务器可以并行运行,以处理相应的数据包或对处理后的数据包进行存储。
第二真实服务器将第一偏移量所属的数据包写入消息队列中后,可以通过第一Spark Streaming服务器从消息队列中读取第一偏移量所属的数据包,并将处理后的第一偏移量所属的数据包存储到数据存储系统。
其中,第一Spark Streaming服务器对数据包进行处理的方式包括,对数据包的格式进行解封装和拼接方式等,本实施例不对此作具体限定。
本实施例通过真实服务器接收客户端传输的数据包,并将接收到的数据包快速写入消息队列,通过Spark Streaming服务器对数据包数据进行处理后存储,使得数据传输与存储分离,有效避免因数据传输中断而对数据存储造成的影响,另一方面,在真实服务器传输数据包的同时,Spark Streaming服务器可以并行对数据包进行处理后存储,有效提高数据存储的效率。
本实施例一方面通过在第一真实服务器传输当前数据包的过程中出现中断时,控制第一真实服务器不在将当前数据包写入消息队列中,有效解决第一真实服务器中断后,继续将内存中的数据包存储到数据存储系统,导致数据存储系统中数据包重复的问题;另一方面根据第一真实服务器最近一次处理后的数据包的偏移量,快速准确定位断点续传数据包的位置,使得第一真实服务器和第二真实服务器同步断点续传数据包的位置信息,且只需要传输一次就可以将整个文件中的所有数据包完整地存储在数据存储系统,有效保证数据传输的完整性和数据存储的准确性,提高传输的效率。
在上述实施例的基础上,本实施例中对所述第一偏移量所属的数据包进行处理之后,还包括:将处理后的数据包的偏移量写入数据库;相应地,所述通过第一SparkStreaming服务器从所述消息队列中读取所述所述第一偏移量所属的数据包,包括:若所述第一Spark Streaming服务器出现宕机,则通过第二Spark Streaming服务器从所述数据库中读取所述第一Spark Streaming服务器最近一次处理的数据包的偏移量,并将所述最近一次处理的数据包的偏移量加1,获取第二偏移量,并从所述消息队列中读取所述第二偏移量所属的数据包。
具体地,第一Spark Streaming服务器处理完成每一数据包后,可以通过偏移量提交模块将处理后的每一数据包的偏移量写入数据库中,以便快速查找到第一SparkStreaming真实服务器处理后每一数据包的偏移量。
其中,数据库可以是MySQL数据库(关系型数据库)或HBase数据库(分布式的、面向列的开源数据库)等,本实施例不对此作具体限定。
在第一Spark Streaming服务器出现宕机时,第一Spark Streaming服务器难以继续对数据包进行处理或将处理后的数据包写入数据存储系统。
此时,可以通过第二Spark Streaming服务器在数据库中直接查找第一SparkStreaming服务器最近一次处理的数据包的偏移量。
然后,将最近一次处理的数据包的偏移量加1,获取第二偏移量。
需要说明的是,第二偏移量为第一Spark Streaming服务器宕机时的待处理数据包的偏移量。
并使用第二Spark Streaming服务器替换第一Spark Streaming服务器,第二Spark Streaming服务器通过查询数据库可以获取第二偏移量,以使第二Spark Streaming服务器准确获取处理待处理数据包的位置信息。
第二Spark Streaming服务器根据第二偏移量继续从消息队列中读取第二偏移量所属的数据包。并继续对第二偏移量所属的数据包进行处理后存储在数据存储系统。
在第一Spark Streaming服务器出现宕机时,通过第二偏移量可以准确定待处理数据包的位置信息,并及时切换至第二Spark Streaming服务器继续对待处理数据包进行处理后存储,使得第一Spark Streaming服务器和第二Spark Streaming服务器同步待处理数据包的位置信息,进而进一步避免数据存储系统中存储的数据包重复,且通过第二偏移量可以快速定位待处理数据包的位置,只需要传输一次就可以将文件中所有的数据包完整地存储在数据存储系统,有效提高传输的效率。
在上述实施例的基础上,本实施例中所述第一Spark Streaming服务器和述第二Spark Streaming服务器集成在Sparking Streaming集群中。
具体地,Sparking Streaming集群包括第一Spark Streaming服务器和第二SparkStreaming服务器,还可以包括其他Spark Streaming服务器等。本实施例不对此作具体限定。
且第一Spark Streaming服务器和第二Spark Streaming服务器的数量可以根据实际需求进行设置。本实施例不限于Sparking Streaming集群中Spark Streaming服务器的数量。
可选地,Sparking Streaming集群中的第一Spark Streaming服务器和第二SparkStreaming服务器互为冗余。
当任一第一Spark Streaming服务器宕机,则可以从Sparking Streaming集群中选择任一第二Spark Streaming服务器替换该第一Spark Streaming服务器,继续进行当前的处理任务。
本实施例通过设置Sparking Streaming集群,以提供冗余的Spark Streaming服务器,不仅可以按顺序从消息队列中读取数据包,将处理后的数据包存储在数据存储系统,还可以在第一Spark Streaming服务器宕机时,及时切换到其他第二Spark Streaming服务器,以提高数据存储的效率。
在上述各实施例的基础上,本实施例中对所述第一偏移量所属的数据包进行处理之后,还包括:计算处理后的数据包的偏移量与所述消息队列中最后一个数据包的偏移量之间的比值,将所述比值作为所述第一Spark Streaming服务器的任务进度,并将所述任务进度写入数据库。
其中,消息队列中存储有多个数据包,本实施例不限于数据包的类型和数量。
可选地,消息队列中存储的所有数据包的数量为当前待存储数据包的总数量。
数据包的偏移量与数据包在文件中的位置或存储在消息队列中的位置对应。在将数据包按照预设顺序依次写入消息队列中时,数据包的偏移量与数据包的写入位置对应,且在当前时刻消息队列中最后一个写入的数据包的偏移量为当前待存储数据包的总数量。
综上,在当前时刻,可以计算第一Spark Streaming服务器处理后的数据包的偏移量与消息队列中最后一个数据包的偏移量之间比值,获取第一Spark Streaming服务器的任务进度。然后,通过第一Spark Streaming服务器将任务进度存储在数据库中,以供用户实时查看任务进度。
同理,对于其他Spark Streaming服务器,也可以按照上述方式计算其任务进度,并将计算的任务进度存储在数据库中。
本实施例通过实时计算任务进度,可以反映DPM机制的实时状态,以对DPM机制进行实时监控。
在上述各实施例的基础上,本实施例中对所述第一偏移量所属的数据包进行处理之前,还包括:计算所述第一Spark Streaming服务器对所述第一偏移量所属的数据包进行处理之前的预设时长内处理的所有数据包的数量和所述预设时长之间的比值,获取所述第一Spark Streaming服务器的处理效率,并将所述处理效率写入数据库。
具体地,在第一Spark Streaming服务器对所述第一偏移量所属的数据包进行处理之前,可以计算第一Spark Streaming服务器对所述第一偏移量所属的数据包进行处理之前的预设时长内处理的所有数据包的数量和预设时长之间的比值,以获取第一SparkStreaming服务器的处理效率,并将处理效率写入数据库中,以便客户端实时查看第一Spark Streaming服务器的处理效率。
其中,预设时长可以根据实际需求进行设置,如1秒。
同理,对于其他任一Spark Streaming服务器,也可以按照上述方式计算该SparkStreaming服务器的处理效率,并将计算的处理效率存储在数据库中。
本实施例通过实时计算Spark Streaming服务器的处理效率,可以实时反映SparkStreaming服务器的性能,进而反映DPM机制的实时状态,以对DPM机制进行实时监控。
在上述实施例的基础上,本实施例中在获取所述第一Spark Streaming服务器的处理效率之后,还包括:若所述处理效率小于预设阈值,则控制所述第一Spark Streaming服务器停止运行。
具体地,在第一Spark Streaming服务器对当前待处理数据包进行处理之前,先判断第一Spark Streaming服务器的处理效率是否小于预设阈值;其中,预设阈值可以根据实际需求进行设置。
需要说明的是,当前待处理数据包为在当前时刻第一Spark Streaming服务器从消息队列中获取的待进行处理的数据包。可以是第一偏移量所属的数据包或消息队列中的其他数据包。
若第一Spark Streaming服务器的处理效率大于预设阈值,则通过第一SparkStreaming服务器对当前待处理数据包进行处理后存储在数据存储系统。
若第一Spark Streaming服务器的处理效率小于预设阈值,则控制所述第一SparkStreaming服务器停止运行,并通过负载调度服务器通过轮询调度算法选取第二真实服务器继续从消息队列中读取当前待处理数据包,并对当前待处理数据包进行处理后写入数据存储刺痛。
本实施例根据第一Spark Streaming服务器的处理效率的处理效率,实时监控第一Spark Streaming服务器的性能。并在第一Spark Streaming服务器的性能较差的情况下,使用第二Spark Streaming服务器替换第一Spark Streaming服务器,以使处理当前待处理数据包的Spark Streaming服务器具有良好的性能,进而保证数据传输效率。
在上述各实施例的基础上,本实施例中所述Kafka分布式集群包括多个消息队列,每个消息队列中的数据包为由客户端发送的同一文件下的数据包。
其中,Kafka分布式集群中包含多个消息队列,本实施例不限于Kafka分布式集群中消息队列的数量,如3个。
Kafka分布式集群具有分布式、支持分区和多副本等特点。
每个消息队列中用于存储同一文件下的数据包。Kafka分布式集群可以包含多个消息队列,用于存储对应文件下的数据包。即每个文件有且仅有一个消息队列,文件与消息队列一一对应。
Kafka分布式集群中的消息队列中存储的数据包为多副本。即Kafka分布式集群中存在冗余的消息队列用于为数据包备份。
当任一消息队列发生宕机时,Spark Streaming服务器可以从冗余的消息队列中读取数据包。
本实施例通过Kafka分布式集群中的消息队列,将数据传输与数据存储分开进行,一方面可以避免数据包在传输过程中丢失,另一方面通过Kafka分布式集群,可以实现对真实服务器发送的数据包进行快速和有效地存储。
如图4所示,本实施例中的数据存储方法的步骤包括:
步骤1,创建消息队列,从真实服务器中快速拉取客户端传输的数据包,并将数据包依次写入消息队列中;
步骤2,Spark Streaming服务器不断地从消息队列中读取数据包,并将处理后的数据包存储在数据存储系统中;
步骤3,通过偏移提交模块将处理后的数据包的偏移量写入数据库;
步骤4,将消息队列中最大的偏移量与处理后的数据包的偏移量相除,获取任务进度,并将任务进度写入数据库;
步骤5,将Spark Streaming服务器在预设时长内处理的数据包的数量与预设时长相除,获取Spark Streaming服务器的处理效率。并将处理效率写入数据库;
步骤6,当收到传输结束符和任务进度为100%时,数据传输任务完成。
本实施例中的数据存储方法采用DPM机制,不仅确保了数据存储过程中的准确性;还在保证具有分布式存储性能的基础上,精确定位断点续传的数据包的位置信息,保证数据存储的完整性,提高网络数据存储的效率。
下面对本发明提供的数据存储系统进行描述,下文描述的数据存储系统与上文描述的数据存储方法可相互对应参照。
如图5所示,为本实施提供的一种数据存储系统,该系统包括控制模块501、获取模块502和发送模块503和存储模块504,其中:
控制模块501用于若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;
其中,数据包所属的文件可以是遥感数据文件或摄像系统采集的视频文件等,本实施例不限于数据包所属的文件的类型。
第一真实服务器用于对客户端发送的数据包进行处理后存储在消息队列中,实现数据的快速存储。
第一真实服务的数量可以根据实际需求进行设置。需要说明的是,当存在多个第一真实服务器时,各第一真实服务器可以并行传输相应的数据包。
其中,第一真实服务器在数据传输过程中出现中断的情况包括第一真实服务器连接中断或切换至其他真实服务器,导致第一真实服务器不能接收到客户端发送的数据包,本实施例不限于上述中断情况。
数据存储系统为HDFS或GFS等,本实施例不限于数据存储系统的类型。
需要说明的是,本实施例提出的数据存储方法基于如图2所示的DPM实现。DPM为真实服务器和数据存储系统之间的中间件。
其中,图2中Broker为Kafka分布式集群的任一消息队列所属的服务器,Consumer为Spark Streaming服务器,ZOOKEEPEER为一个分布式的、开放源码的分布式应用程序协调服务器。
基于DPM进行数据存储的步骤为,真实服务服务器从客户端获取数据包,并将获取的数据包依次存储在Kafka分布式集群的消息队列中;然后,Spark Streamin服务器从Kafka分布式集群的消息队列中读取数据包。
在数据传输过程中,若第一真实服务器未出现中断,则第一真实服务器将从客户端获取的数据包持续写入消息队列。
若第一真实服务器出现中断,且需要续传数据包时,可以通过轮询调度算法指定第二真实服务器,以替换第一真实服务,并通过第二真实服务器继续对当前数据包进行传输。
如图3所示,现有技术中基于LVS集群架构对数据进行存储。其中,LVS集群分为三层结构,分别为LB、RS和SS。LB位于整个LVS集群的前端,负责处理客户的服务请求。因此,对于整个服务器集群,LB是连接请求的入口。RS是一组真正执行客户请求的服务器,由多个功能相同的真实服务器组成,用于执行由LB分配的FTP、WEB、MAIL等服务。SS为RS提供数据存储服务,共享存储技术的成功应用极大地节省了数据存储空间,为数据传输中心提供灵活的存储服务。
但是,在RS的节点变更或连接中断时,旧RS还会继续将内存数据传输到LB,使得LB中存储的数据存在重复片段,数据存储准确性低。
而本实施例在第一真实服务器传输数据出现中断时,则控制第一真实服务器不再将当前数据包写入Kafka分布式集群的消息队列中,并及时切换至第二真实服务器。第二真实服务器继续向消息队列写入当前数据包,以及当前数据包之后的数据包,有效避免消息队列中出现重复的数据包,进而避免数据存储系统中的数据包重复,有效保证数据存储的准确性。
获取模块502用于根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;
其中,Kafka分布式集群中消息队列中存储的数据包均具有相应的偏移量,且每个数据包的偏移量与数据包在其所在文件中的位置或存储在消息队列中的位置相关。例如,第一个写入消息队列中的数据包的偏移量为1,第二个写入消息队列中的数据包的偏移量为2。
在第一真实服务器出现中断时,根据第一真实服务器每次写入的数据包位于Kafka分布式集群中消息队列的位置,可以直接在消息队列中查询第一真实服务器最近一次传输的数据包的偏移量。
然后,将最近一次处理后的文件的偏移量加1,获取第一偏移量。
需要说明的是,第一偏移量即是断点续传数据包的偏移量。
本实施例通过第一真实服务器最近一次处理后的文件的偏移量,可以准确定位到第一真实服务器传输的断点续传数据包的位置。
发送模块503用于将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;
具体地,第一真实服务器出现中断时,可以使用第二真实服务器替换第一真实服务器。第二真实服务器继续将断点续传数据包写入消息队列中。
首先,客户端获取断点续传数据包的偏移量,然后按照所获取的偏移量继续向第二真实服务器上传数据包。其中,此时,客户端上传的数据包包括断点续传数据包和断点续传数据包之后的数据包。
然后,第二真实服务器接收数据包,继续将接收的数据包写入消息队列中。
其中,服务端集成有多个真实服务器,服务端集的真实服务器的数量可以根据实际需求进行设置,不仅限于本实施例中的第一真实服务器和第二真实服务器。
在第一真实服务器出现中断时,通过第一偏移量可以准确定位断点续传数据包的位置,并切换至第二真实服务器继续传输数据,使得第一真实服务器和第二真实服务器的断点续传数据包的位置信息同步,进而有效避免数据存储系统中存储的数据包重复,且通过第一偏移量可以快速定位断点续传数据包的位置,只需要传输一次就可以将文件中所有的数据包完整地存储在数据存储系统,有效提高传输的效率。
存储模块504用于通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统。
具体地,第一Spark Streaming服务器可以为一个或多个,本实施例不限第一Spark Streaming服务器的数量。
需要说明的是,当第一Spark Streaming服务器为多个时,各第一SparkStreaming服务器可以并行运行,以处理相应的数据包或对处理后的数据包进行存储。
第二真实服务器将第一偏移量所属的数据包写入消息队列中后,可以通过第一Spark Streaming服务器从消息队列中读取第一偏移量所属的数据包,并将处理后的第一偏移量所属的数据包存储到数据存储系统。
其中,第一Spark Streaming服务器对数据包进行处理的方式包括,对数据包的格式进行解封装和拼接方式等,本实施例不对此作具体限定。
本实施例通过真实服务器接收客户端传输的数据包,并将接收到的数据包快速写入消息队列,通过Spark Streaming服务器对数据包数据进行处理后存储,使得数据传输与存储分离,有效避免因数据传输中断而对数据存储造成的影响,另一方面,在真实服务器传输数据包的同时,Spark Streaming服务器可以并行对数据包进行处理后存储,有效提高数据存储的效率。
本实施例一方面通过在第一真实服务器传输当前数据包的过程中出现中断时,控制第一真实服务器不在将当前数据包写入消息队列中,有效解决第一真实服务器中断后,继续将内存中的数据包存储到数据存储系统,导致数据存储系统中数据包重复的问题;另一方面根据第一真实服务器最近一次处理后的数据包的偏移量,快速准确定位断点续传数据包的位置,使得第一真实服务器和第二真实服务器同步断点续传数据包的位置信息,且只需要传输一次就可以将整个文件中的所有数据包完整地存储在数据存储系统,有效保证数据传输的完整性和数据存储的准确性,提高传输的效率。
在上述实施例的基础上,本实施例中还包括写入模块具体用于:将处理后的数据包的偏移量写入数据库;存储模块具体用于:若所述第一Spark Streaming服务器出现宕机,则通过第二Spark Streaming服务器从所述数据库中读取所述第一Spark Streaming服务器最近一次处理的数据包的偏移量,并将所述最近一次处理的数据包的偏移量加1,获取第二偏移量,并从所述消息队列中读取所述第二偏移量所属的数据包。
在上述实施例的基础上,本实施例中所述第一Spark Streaming服务器和述第二Spark Streaming服务器集成在Sparking Streaming集群中。
在上述各实施例的基础上,本实施例中还包括计算模块具体用于:计算处理后的数据包的偏移量与所述消息队列中最后一个数据包的偏移量之间的比值,将所述比值作为所述第一Spark Streaming服务器的任务进度,并将所述任务进度写入数据库。
在上述各实施例的基础上,本实施例中计算模块,还用于计算所述第一SparkStreaming服务器对所述第一偏移量所属的数据包进行处理之前的预设时长内处理的所有数据包的数量和所述预设时长之间的比值,获取所述第一Spark Streaming服务器的处理效率,并将所述处理效率写入数据库。
在上述实施例的基础上,本实施例中还包括控制模块具体用于:若所述处理效率小于预设阈值,则控制所述第一Spark Streaming服务器停止运行。
在上述各实施例的基础上,本实施例中所述Kafka分布式集群包括多个消息队列,每个消息队列中的数据包为由客户端发送的同一文件下的数据包。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)601、通信接口(Communications Interface)602、存储器(memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储器603中的逻辑指令,以执行数据存储方法,该方法包括:若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统。
此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据存储方法,该方法包括:若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的数据存储方法,该方法包括:若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种数据存储方法,其特征在于,包括:
若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;
根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;
将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;
通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统;
对所述第一偏移量所属的数据包进行处理之后,还包括:
将处理后的数据包的偏移量写入数据库;
所述通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统,包括:
若所述第一Spark Streaming服务器出现宕机,则通过第二Spark Streaming服务器从所述数据库中读取所述第一Spark Streaming服务器最近一次处理的数据包的偏移量,将所述最近一次处理的数据包的偏移量加1,获取第二偏移量;
并使用所述第二Spark Streaming服务器替换所述第一Spark Streaming服务器,以供所述第二Spark Streaming服务器通过查询所述数据库获取所述第二偏移量,根据所述第二偏移量继续从所述消息队列中读取所述第二偏移量所属的数据包,并继续对所述第二偏移量所属的数据包进行处理后存储在所述数据存储系统;所述第二偏移量为所述第一Spark Streaming服务器宕机时的待处理数据包的偏移量。
2.据权利要求1所述的数据存储方法,其特征在于,所述第一Spark Streaming服务器和述第二Spark Streaming服务器集成在Sparking Streaming集群中。
3.根据权利要求1-2任一所述的数据存储方法,其特征在于,对所述第一偏移量所属的数据包进行处理之后,还包括:
计算处理后的数据包的偏移量与所述消息队列中最后一个数据包的偏移量之间的比值,将所述比值作为所述第一Spark Streaming服务器的任务进度,并将所述任务进度写入数据库。
4.根据权利要求1-2任一所述的数据存储方法,其特征在于,对所述第一偏移量所属的数据包进行处理之前,还包括:
计算所述第一Spark Streaming服务器对所述第一偏移量所属的数据包进行处理之前的预设时长内处理的所有数据包的数量和所述预设时长之间的比值,获取所述第一SparkStreaming服务器的处理效率,并将所述处理效率写入数据库。
5.根据权利要求4所述的数据存储方法,其特征在于,在获取所述第一SparkStreaming服务器的处理效率之后,还包括:
若所述处理效率小于预设阈值,则控制所述第一Spark Streaming服务器停止运行。
6.根据权利要求1-2任一所述的数据存储方法,其特征在于,所述Kafka分布式集群包括多个消息队列,每个消息队列中的数据包为由客户端发送的同一文件下的数据包。
7.一种数据存储系统,其特征在于,包括:
控制模块,用于若服务端的第一真实服务器在将客户端发送的当前数据包传输给Kafka分布式集群的消息队列的过程中出现中断,则控制所述第一真实服务器不再将所述当前数据包写入所述消息队列中;
获取模块,用于根据所述第一真实服务器最近一次写入的数据包位于所述消息队列中的位置,获取所述最近一次写入的数据包的偏移量,并将所述偏移量加1,获取第一偏移量;
发送模块,用于将所述第一偏移量反馈给所述客户端,以供所述客户端将所述第一偏移量所属的数据包发送给所述服务端,所述服务端的第二真实服务器将所述第一偏移量所属的数据包通过追加的方式写入所述消息队列中;
存储模块,用于通过第一Spark Streaming服务器从所述消息队列中读取所述第一偏移量所属的数据包,对所述第一偏移量所属的数据包进行处理,并将处理后的数据包存储到数据存储系统;
还包括写入模块,用于:
将处理后的数据包的偏移量写入数据库;
所述存储模块,具体用于:
若所述第一Spark Streaming服务器出现宕机,则通过第二Spark Streaming服务器从所述数据库中读取所述第一Spark Streaming服务器最近一次处理的数据包的偏移量,将所述最近一次处理的数据包的偏移量加1,获取第二偏移量;
并使用所述第二Spark Streaming服务器替换所述第一Spark Streaming服务器,以供所述第二Spark Streaming服务器通过查询所述数据库获取所述第二偏移量,根据所述第二偏移量继续从所述消息队列中读取所述第二偏移量所属的数据包,并继续对所述第二偏移量所属的数据包进行处理后存储在所述数据存储系统;所述第二偏移量为所述第一Spark Streaming服务器宕机时的待处理数据包的偏移量。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述数据存储方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110429975.6A CN113220473B (zh) | 2021-04-21 | 2021-04-21 | 数据存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110429975.6A CN113220473B (zh) | 2021-04-21 | 2021-04-21 | 数据存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220473A CN113220473A (zh) | 2021-08-06 |
CN113220473B true CN113220473B (zh) | 2024-03-22 |
Family
ID=77088198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110429975.6A Active CN113220473B (zh) | 2021-04-21 | 2021-04-21 | 数据存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220473B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886329A (zh) * | 2021-10-13 | 2022-01-04 | 北京达佳互联信息技术有限公司 | 一种数据获取方法、装置、系统、设备及存储介质 |
CN114584554A (zh) * | 2022-03-02 | 2022-06-03 | 中国银行股份有限公司 | 一种基于共享存储的分布式影像断点续传方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171971A (zh) * | 2017-12-18 | 2018-06-15 | 武汉烽火众智数字技术有限责任公司 | 基于Spark Streaming的车辆实时监控方法及系统 |
CN110442635A (zh) * | 2019-08-22 | 2019-11-12 | 深圳市元征科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN111400405A (zh) * | 2020-03-30 | 2020-07-10 | 兰州交通大学 | 一种基于分布式的监控视频数据并行处理系统及方法 |
CN111897662A (zh) * | 2020-07-01 | 2020-11-06 | 中国建设银行股份有限公司 | 偏移量处理方法、装置、电子设备及计算机可读存储介质 |
-
2021
- 2021-04-21 CN CN202110429975.6A patent/CN113220473B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171971A (zh) * | 2017-12-18 | 2018-06-15 | 武汉烽火众智数字技术有限责任公司 | 基于Spark Streaming的车辆实时监控方法及系统 |
CN110442635A (zh) * | 2019-08-22 | 2019-11-12 | 深圳市元征科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN111400405A (zh) * | 2020-03-30 | 2020-07-10 | 兰州交通大学 | 一种基于分布式的监控视频数据并行处理系统及方法 |
CN111897662A (zh) * | 2020-07-01 | 2020-11-06 | 中国建设银行股份有限公司 | 偏移量处理方法、装置、电子设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于Spark Streaming的实时交通数据处理平台;谭亮;周静;;计算机系统应用(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113220473A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106953901B (zh) | 一种提高消息传递性能的集群通信系统及其方法 | |
US10261853B1 (en) | Dynamic replication error retry and recovery | |
JP3762846B2 (ja) | サーバのグループに関する作業負荷管理を行うデータ処理装置および方法 | |
US10929157B2 (en) | Techniques for checkpointing/delivery between primary and secondary virtual machines | |
CN113220473B (zh) | 数据存储方法及系统 | |
CN110795503A (zh) | 分布式存储系统的多集群数据同步方法及相关装置 | |
US10331613B2 (en) | Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof | |
US10740198B2 (en) | Parallel partial repair of storage | |
CN105302676B (zh) | 一种分布式文件系统的主备机制数据传输方法及装置 | |
US11595474B2 (en) | Accelerating data replication using multicast and non-volatile memory enabled nodes | |
US20160062854A1 (en) | Failover system and method | |
CN106603692B (zh) | 一种分布式存储系统中的数据存储方法及装置 | |
US9104488B2 (en) | Support server for redirecting task results to a wake-up server | |
CN105306585A (zh) | 一种多数据中心的数据同步方法 | |
CN111382134B (zh) | 大规模分布式存储系统中数据恢复方法及装置 | |
CN108206839B (zh) | 一种基于多数派数据存储方法、装置及系统 | |
US9298765B2 (en) | Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network | |
JP4612714B2 (ja) | データ処理方法、クラスタシステム、及びデータ処理プログラム | |
US20170235600A1 (en) | System and method for running application processes | |
Vieira et al. | The performance of paxos and fast paxos | |
CN113259408A (zh) | 数据传输方法和系统 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
EP3167372B1 (en) | Methods for facilitating high availability storage services and corresponding devices | |
CN114866395B (zh) | 多组分布式一致性协议集群心跳通讯方法及装置 | |
US20190121664A1 (en) | Method, apparatus and computer-readable medium for application scheduling |
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 |