CN107168642B - 一种数据存储方法及系统 - Google Patents
一种数据存储方法及系统 Download PDFInfo
- Publication number
- CN107168642B CN107168642B CN201710203346.5A CN201710203346A CN107168642B CN 107168642 B CN107168642 B CN 107168642B CN 201710203346 A CN201710203346 A CN 201710203346A CN 107168642 B CN107168642 B CN 107168642B
- Authority
- CN
- China
- Prior art keywords
- data
- service system
- data service
- client
- cached
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供了一种数据存储方法及系统,该方法应用于第一数据服务系统,包括:获取至少两个待缓存数据;所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据包括:至少两个与第二数据服务系统连接的第二客户端生成的数据;将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,以使所述第一数据服务系统和至少一个第二数据服务系统中存储的数据相同。本发明实施例,确保了各个数据服务系统的缓存服务器中存储的数据相同,提高了各个数据服务系统处理数据的效率。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据存储方法及系统。
背景技术
随着互联网公司提供的业务种类的不断增加,导致互联网公司需要处理的数据越来越多,通常,互联网公司通过部署多个数据服务系统来处理数据。其中,每个数据服务系统对应一个缓存服务器,为了使各数据服务系统提供相同的数据处理服务,各个数据服务系统中的缓存服务器中存储的数据需要同步。
目前,各个数据服务系统中的缓存服务器进行数据同步的方法主要有两种:第一种,客户端将待缓存数据写入消息队列存储器,以使各个数据服务系统从该消息队列存储器依次读取该待缓存数据;第二种,每个客户端生成的待缓存数据均依次写入每个数据服务系统。
但是,对于第一种存储数据的方式,当与客户端连接的数据服务系统出现故障时,则客户端不能向该数据服务系统的消息队列存储器写入数据,或者,当该数据服务系统与其他数据服务系统连接出现故障时,该数据服务系统中的数据不能及时同步到其他数据服务系统中;对于第二种存储数据的方式,当数据服务系统的数量增加时,执行写入数据的操作次数增加,使得存储数据的时间较长,当多个数据服务系统连接的客户端同时写入不同数据时,各个数据服务系统写入数据的顺序可能不一致,那么当其中一个数据服务系统出现故障时,仍然可能使各数据服务系统的缓存服务器中存储的数据不一致。可见,目前的数据同步方法中,各个数据服务系统中的存储的数据可能不一致,将影响数据服务系统对数据的正常处理。
发明内容
本发明实施例的目的在于提供一种数据存储方法及系统,以实现各数据服务系统中存储的数据相同。具体技术方案如下:
一方面,本发明实施例公开了一种数据存储方法,应用于第一数据服务系统,所述方法包括:
获取至少两个待缓存数据;所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据包括:至少两个与第二数据服务系统连接的第二客户端生成的数据;
将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,以使所述第一数据服务系统和至少一个第二数据服务系统中存储的数据相同。
优选的,所述将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,包括:
将所述至少两个待缓存数据按照预设存储顺序存储于消息队列存储器;
根据所述消息队列存储器中至少两个待缓存数据的排序,依次将所述至少两个待缓存数据存储于所述第一数据服务系统中的缓存服务器。
优选的,所述方法还包括:
当所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据时,将所述第一客户端生成的数据发送到第二数据服务系统,以使所述第二数据服务系统按照预设存储顺序存储所述至少两个待缓存数据。
优选的,所述方法还包括:
接收所述第二客户端发送的数据读写请求,其中,所述数据读写请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统读写数据的请求。
优选的,所述方法还包括:
在接收到所述第二数据服务系统恢复故障的消息后,向所述第二数据服务系统发送同步数据,其中,所述同步数据为:所述第二数据服务系统故障期间,所述第一数据服务系统存储的数据,所述故障期间为:所述第一数据服务系统接收到所述第二客户端发送的数据读写请求的第一时刻与接收到所述第二数据服务系统恢复故障的消息的第二时刻之间的时间段。
优选的,所述方法还包括:
在接收到所述第二数据服务系统的通知消息后,将所述第二客户端发送的数据读写请求分配回所述第二数据服务系统,以使所述第二客户端从所述第二数据服务系统中读写待缓存数据,其中,所述通知消息为:所述第二数据服务系统接收到所述第一数据服务系统发送的同步数据之后的发送的消息。
另一方面,本发明实施例还公开了一种数据存储系统,应用于第一数据服务系统,所述系统包括:
获取单元,用于获取至少两个待缓存数据;所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据包括:至少两个与第二数据服务系统连接的第二客户端生成的数据;
存储单元,用于将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,以使所述第一数据服务系统和至少一个第二数据服务系统中存储的数据相同。
优选的,所述存储单元,包括:
第一存储子单元,用于将所述至少两个待缓存数据按照预设存储顺序存储于消息队列存储器;
第二存储子单元,用于根据所述消息队列存储器中至少两个待缓存数据的排序,依次将所述至少两个待缓存数据存储于所述第一数据服务系统中的缓存服务器。
优选的,所述系统还包括:
第一发送单元,用于当所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据时,将所述第一客户端生成的数据发送到第二数据服务系统,以使所述第二数据服务系统按照预设存储顺序存储所述至少两个待缓存数据。
优选的,所述系统还包括:
接收单元,用于接收所述第二客户端发送的数据读写请求,其中,所述数据读写请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统读写数据的请求。
优选的,所述系统还包括:
第二发送单元,用于在接收到所述第二数据服务系统恢复故障的消息后,向所述第二数据服务系统发送同步数据,其中,所述同步数据为:所述第二数据服务系统故障期间,所述第一数据服务系统存储的数据,所述故障期间为:所述第一数据服务系统接收到所述第二客户端发送的数据读写请求的第一时刻与接收到所述第二数据服务系统恢复故障的消息的第二时刻之间的时间段。
优选的,所述系统还包括:
分配单元,用于在接收到所述第二数据服务系统的通知消息后,将所述第二客户端发送的数据读写请求分配回所述第二数据服务系统,以使所述第二客户端从所述第二数据服务系统中读写待缓存数据,其中,所述通知消息为:所述第二数据服务系统接收到所述第一数据服务系统发送的同步数据之后的发送的消息。
本发明实施例提供了一种数据存储方法及系统,由第一数据服务系统执行,获取至少两个待缓存数据,其中,至少两个待缓存数据包括:与第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据包括:至少两个与第二数据服务系统的第二客户端生成的数据;将至少两个待缓存数据按照预设存储顺序存储于第一数据服务系统,以使第一数据服务系统和至少一个第二数据服务系统中存储的数据相同。本发明实施例中,可以将第一客户端生成的数据和至少一个第二客户端生成的数据,按照预设存储顺序存储于第一数据服务系统,实现了所有数据服务系统中存储的数据相同,从而提高了数据服务系统对数据的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的数据存储方法的流程图;
图2为本发明实施例所提供的第一数据服务系统的结构示意图;
图3为本发明实施例所提供的三个数据服务系统连接的示意图;
图4为本发明实施例所提供的数据存储方法的另一种流程图;
图5为本发明实施例所提供的数据存储方法的另一种流程图;
图6为本发明实施例所提供的数据存储系统的一种结构示意图;
图7为本发明实施例所提供的数据存储系统的另一种结构示意图;
图8为本发明实施例所提供的数据存储系统的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
互联网公司通常部署多个数据服务系统来处理相关业务所对应的数据,其中,每个数据服务系统对应一个缓存服务器。目前,各个数据服务系统进行数据同步的方法主要包括:第一种,第一客户端将待缓存的数据,按照该待缓存数据生成的时间顺序,依次写入第一数据服务系统中的消息队列存储器,其中,第一客户端与第一数据服务系统连接,至少一个第二数据服务系统在预设周期内读取该消息队列存储器中的待缓存数据,以实现所有数据服务系统中的数据同步,其中,至少一个第二数据服务系统为所有数据服务系统中除第一数据服务系统的数据服务系统。第二种,当任一数据服务系统连接的客户端生成数据时,该客户端需要将该数据写入所有的数据服务系统中,以使所有数据服务系统中存储的数据相同。
上述两种方式,虽然都能将各个数据服务系统中的数据同步,但对于第一种同步数据的方式,当第一数据服务系统出现故障时,第一客户端不能将生成的数据写入第一数据服务系统,当第一数据服务系统与任一第二数据服务系统连接出现故障时,第一服务数据系统中的数据不能及时同步到第二数据服务系统中;对于第二种同步数据的方式,当数据服务系统的数量增加时,生成数据的客户端需要将数据写入每个数据服务系统,使得同步数据的时间较长,当多个客户端同时在数据服务系统写入数据时,各个数据服务系统写入数据的顺序不一致。可见,目前的各个数据服务系统中存储的数据可能存在不一致,影响数据服务系统对数的正常处理。
因此,本发明实施例提供了一种数据存储方法,以实现各个数据服务系统中存储的数据相同。
本发明实施例提供的数据存储方法应用于包括多个数据服务系统的数据存储网络,其中,包括第一数据服务系统和至少一个第二数据服务系统。第一客户端与第一数据服务系统连接,其中,第一客户端可以包括至少一个客户端,第一客户端可以向第一数据服务系统读写数据。第二客户端与第二数据服务系统连接,第二客户端可以包括至少一个客户端,与每个第二数据服务系统连接的第二客户端可以向该数据服务系统读写数据。
如图1所示,本发明实施例所提供的一种数据存储方法,应用于第一数据服务系统,该方法可以包括如下步骤:
S101,获取至少两个待缓存数据。
其中,所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据还包括:至少两个与第二数据服务系统连接的第二客户端生成的数据。
可以理解的是,每个客户端都可以生成数据,并且每个客户端都将所生成的数据写入与其相连的数据服务系统,例如,客户端A将该客户端A生成的数据a写入到与客户端A相连的数据服务器AA,客户端B将该客户端B生成的数据b写入到与客户端B相连的数据服务器BB。
这里,将各个客户端生成的数据,但没有存储到各个数据服务系统中的缓存服务器中的数据作为待缓存数据。
S102,将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,以使所述第一数据服务系统和至少一个第二数据服务系统中存储的数据相同。
在获得至少两个待缓存的数据时,需要将至少两个待缓存的数据按照预设存储顺序进行排序,将排序后的待缓存数据依次存储于第一数据服务系统。可见,在第一数据服务系统中存储的数据不一定是按照数据生成的时间顺序存储,可以根据预先设定的存储顺序存储各个客户端生成的数据。
举例而言,如图2所示,本发明实施例所提供的第一数据服务系统的结构示意图,第一客户端200与第一数据服务系统210连接,其中,第一数据服务系统210可以包括:数据同步服务器211、消息队列存储器212、消息队列管理器213及缓存服务器214。这里,第一客户端200不仅仅指一个客户端,第一客户端可以包括至少一个客户端,也就是第一客户端可以为:与第一数据服务系统相连的任一客户端。
具体的,所述将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,包括:
将所述至少两个待缓存数据按照预设存储顺序存储于消息队列存储器。
根据所述消息队列存储器中至少两个待缓存数据的排序,依次将所述至少两个待缓存数据存储于所述第一数据服务系统中的缓存服务器。
当至少两个待缓存数据为第一客户端生成的数据时,如图2所示,第一客户端将生成的待缓存数据写入第一数据服务系统的数据同步服务器中时,该数据同步服务器将该待缓存数据按照待缓存数据生成的时间顺序,依次存储于消息队列存储器,消息队列管理器在预设周期(例如,1毫秒、2毫秒等)内从消息队列存储器中获取待缓存数据,并写入缓存服务器。
但是,当所述至少两个待缓存数据包括:第一客户端生成的数据和至少一个第二客户端生成的数据时,第一数据服务系统的数据同步服务器根据预设存储顺序(例如,设定第一客户端生成的数据存储的顺序在第二客户端生成的数据之前,或者设定第一客户端生成的数据存储的顺序在第二客户端生成的数据之后),将至少两个待缓存数据存储于消息队列存储器,然后,消息队列管理器在预设周期(例如,1毫秒、2毫秒等)内从消息队列存储器中获取待缓存数据,并写入缓存服务器。
例如,至少两个待缓存数据包括:第一客户端A生成的数据a,第二客户端B生成的数据b,预先设定首先存储第一客户端A生成的数据a,再存储第二客户端B生成的数据b到消息队列存储器。
实际应用中,消息队列存储器可以包括:Kafka(一种消息系统)、AMQ(AdvancedMessage Queuing、消息队列)等。缓存服务器可以包括:Redis(一种存储系统)、Couchbase(一种数据库管理系统)。数据同步服务器可以包括:Paxos(一种基于消息传递的一致性算法)一致性协议,可以理解的是,各个数据同步服务器中的Paxos一致性协议,针对各个客户端生成的至少两个待缓存数据,确定至少两个待缓存数据在消息队列存储器中的存储顺序。
举例而言,如图3所示,本发明实施例所提供的三个数据服务系统连接的示意图,具体的,三个数据服务系统可以包括:北京数据服务系统320、上海数据服务系统340及沈阳数据服务系统360,其中,北京数据服务系统320与北京客户端310连接,上海数据服务系统340与上海客户端330连接,沈阳数据服务系统360与沈阳客户端360连接。这里,北京客户端可以理解为北京用户所使用的客户端(例如,智能手机、平板电脑、台式电脑等客户端),北京地区的用户可以通过北京客户端在北京数据服务系统写入数据,上海用户可以通过上海客户端在上海数据服务系统写入数据,沈阳用户可以通过沈阳客户端在沈阳数据服务系统写入数据。
例如,将北京数据服务系统作为第一数据服务系统,北京客户端作为第一客户端,上海数据服务系统和沈阳数据服务系统均作为第二数据服务系统,上海客户端和沈阳客户端均作为第二客户端。设定北京客户端生成的数据存储顺序在上海客户端生成的数据之前,其次是上海客户端生成的数据的存储顺序在沈阳客户端生成的数据之前,也就是预设存储顺序可以为:北京客户端生成的数据、上海客户端生成的数据及沈阳客户端生成的数据。当北京数据服务系统中的数据同步服务器获取到这个三个客户端生成的数据(三个待缓存数据)时,将三个待缓存数据按照预设存储顺序存储于消息队列存储器,然后,消息队列管理服务器依次将消息队列存储器中的三个待缓存数据存储于北京数据服务系统的缓存服务器中。
本发明实施例中,可以将第一客户端生成的数据和至少一个第二客户端生成的数据,按照预设存储顺序存储于第一数据服务系统,实现了所有数据服务系统中存储的数据相同,从而提高了数据服务系统对数据的处理效率。
更进一步,如图4所示,本发明实施例所提供的一种存储数据的方法,还可以包括:
S103,当所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据时,将所述第一客户端生成的数据发送到第二数据服务系统,以使所述第二数据服务系统按照预设存储顺序存储所述至少两个待缓存数据。
可以理解的是,当至少两个待缓存数据既包括第一客户端生成的数据也包括第二客户端生成的数据时,将第一客户端生成的数据和第二客户端生成的数据按照预设存储顺序存储于第一数据服务系统,同时也需要将第一客户端生成的数据发送给第二数据服务系统,使得第二数据服务系统将第一客户端生成的数据和第二客户端生成的数据也按照预设存储顺序存储。这样,确保了第一数据服务系统和第二数据服务系统存储的数据一致。
例如,如图3所示,北京数据服务系统中的数据同步服务器将北京客户端生成的数据分别发送给上海数据服务系统和沈阳数据服务系统,以使上海数据服务系统和沈阳数据服务系统按照预设存储顺序存储上述三个客户端生成的数据。需要注意的是,各个数据服务系统的预设存储顺序是一样的,这样,保证了各个数据服务系统的缓存服务器中存储的数据的一致性,也就是既保证了各个数据服务系统中所存储数据的内容的相同,也保证所存储数据的顺序一致。
S104,接收所述第二客户端发送的数据读写请求,其中,所述数据读写请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统读写数据的请求。
其中,所述数据读写请求包括:读取数据请求和写入数据请求,具体的,所述读取数据请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统读取数据的请求,所述写入数据请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统写入数据的请求。
可以理解的是,接收所述第二客户端发送的数据读写请求,包括:接收所述第二客户端发送的读取数据请求和/或写入数据请求。
本发明实施例中,可以将第一客户端生成的数据和至少一个第二客户端生成的数据,按照预设存储顺序存储于第一数据服务系统,实现了所有数据服务系统中存储的数据相同,当第二数据服务系统发生故障时,与第二数据服务系统相连的第二客户端可以向第一数据服务系统读写数据,可见,即使有数据服务系统出现故障时,也不会影响客户端读写数据的操作。
更进一步的,如图5所示,本发明实施例所提供的一种存储数据的方法,还可以包括:
S105,在接收到所述第二数据服务系统恢复故障的消息后,向所述第二数据服务系统发送同步数据。
其中,所述同步数据为:所述第二数据服务系统故障期间,所述第一数据服务系统存储的数据,所述故障期间为:所述第一数据服务系统接收到所述第二客户端发送的数据读写请求的第一时刻与接收到所述第二数据服务系统恢复故障的消息的第二时刻之间的时间段。
通常,当第一数据服务系统接收到第二数据服务系统恢复故障的消息后,向第二数据服务系统发送该第二数据服务系统故障期间的,第一数据服务系统存储的数据,这样,在任一数据服务系统出现故障时,确保用户可以通过客户端读写数据服务系统中的数据。
S106,在接收到所述第二数据服务系统的通知消息后,将所述第二客户端发送的数据读写请求分配回所述第二数据服务系统,以使所述第二客户端从所述第二数据服务系统中读写待缓存数据。
其中,所述通知消息为:所述第二数据服务系统接收到所述第一数据服务系统发送的同步数据之后的发送的消息。
在将第二数据服务系统故障期间,第一数据服务系统存储的数据同步到第二数据服务系统,且接收第二数据服务系统发送通知消息后,将第二客户端的读写数据请求分配回第二数据服务系统。
本发明实施例中,在任一数据服务系统发生故障时,与发生故障的数据服务系统连接的客户端可以向其他没有发生故障的数据服务系统读写数据,当该数据服务系统的故障恢复时,重新向该恢复故障的数据服务系统读写数据,确保用户可以始终通过客户端读写数据服务系统中存储的数据。
相应于上述数据存储方法实施例,本发明实施例还提供了一种数据存储系统,应用于第一数据服务系统,如图6所示,所述系统600可以包括:
获取单元610,用于获取至少两个待缓存数据;所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据还包括:至少两个与第二数据服务系统连接的第二客户端生成的数据。
存储单元620,用于将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,以使所述第一数据服务系统和至少一个第二数据服务系统中存储的数据相同。
本实施例提供的种数据存储系统,用于实现图1所示的数据存储方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步,所述存储单元620,包括:
第一存储子单元621,用于将所述至少两个待缓存数据按照预设存储顺序存储于消息队列存储器。
第二存储子单元622,用于根据所述消息队列存储器中至少两个待缓存数据的排序,依次将所述至少两个待缓存数据存储于所述第一数据服务系统中的缓存服务器。
本发明实施例中,可以将第一客户端生成的数据和至少一个第二客户端生成的数据,按照预设存储顺序存储于第一数据服务系统,实现了所有数据服务系统中存储的数据相同,从而提高了数据服务系统对数据的处理效率。
进一步,在包含获取单元610、存储单元620的基础上,如图7所示,本发明实施例所提供的一种存储数据的系统还可以包括:
第一发送单元630,用于当所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据时,将所述第一客户端生成的数据发送到第二数据服务系统,以使所述第二数据服务系统按照预设存储顺序存储所述至少两个待缓存数据。
更进一步,所述系统600还包括:
接收单元640,用于接收所述第二客户端发送的数据读写请求,其中,所述数据读写请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统读写数据的请求。
本发明实施例中,可以将第一客户端生成的数据和至少一个第二客户端生成的数据,按照预设存储顺序存储于第一数据服务系统,实现了所有数据服务系统中存储的数据相同,当第二数据服务系统发生故障时,与第二数据服务系统相连的第二客户端可以向第一数据服务系统读写数据,可见,即使有数据服务系统出现故障时,也不会影响客户端读写数据的操作。
另外,在包含获取单元610、存储单元620、第一发送单元630及接收单元640的基础上,如图8所示,本发明实施例所提供的一种存储数据的系统还可以包括:
第二发送单元650,用于在接收到所述第二数据服务系统恢复故障的消息后,向所述第二数据服务系统发送同步数据,其中,所述同步数据为:所述第二数据服务系统故障期间,所述第一数据服务系统存储的数据,所述故障期间为:所述第一数据服务系统接收到所述第二客户端发送的数据读写请求的第一时刻与接收到所述第二数据服务系统恢复故障的消息的第二时刻之间的时间段。
进一步,所述系统还包括:
分配单元660,用于在接收到所述第二数据服务系统的通知消息后,将所述第二客户端发送的数据读写请求分配回所述第二数据服务系统,以使所述第二客户端从所述第二数据服务系统中读写待缓存数据,其中,所述通知消息为:所述第二数据服务系统接收到所述第一数据服务系统发送的同步数据之后的发送的消息。
本发明实施例中,在任一数据服务系统发生故障时,与发生故障的数据服务系统连接的客户端可以向其他没有发生故障的数据服务系统读写数据,当该数据服务系统的故障恢复时,重新向该恢复故障的数据服务系统读写数据,确保用户可以始终通过客户端读写数据服务系统中存储的数据。
对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种数据存储方法,其特征在于,应用于第一数据服务系统,所述方法包括:
获取至少两个待缓存数据;所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据包括:至少两个与第二数据服务系统连接的第二客户端生成的数据;
当所述至少两个待缓存数据中不包括所述第一客户端生成的数据时,将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统;其中,所述第二数据服务器系统中按照预设存储顺序存储有所述至少两个待缓存数据;
当所述至少两个待缓存数据包括所述第一客户端生成的数据时,将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统;并将所述第一客户端生成的数据发送到第二数据服务系统,以使所述第二数据服务系统按照预设存储顺序存储所述至少两个待缓存数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统,包括:
将所述至少两个待缓存数据按照预设存储顺序存储于消息队列存储器;
根据所述消息队列存储器中至少两个待缓存数据的排序,依次将所述至少两个待缓存数据存储于所述第一数据服务系统中的缓存服务器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第二客户端发送的数据读写请求,其中,所述数据读写请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统读写数据的请求。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
在接收到所述第二数据服务系统恢复故障的消息后,向所述第二数据服务系统发送同步数据,其中,所述同步数据为:所述第二数据服务系统故障期间,所述第一数据服务系统存储的数据,所述故障期间为:所述第一数据服务系统接收到所述第二客户端发送的数据读写请求的第一时刻与接收到所述第二数据服务系统恢复故障的消息的第二时刻之间的时间段。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在接收到所述第二数据服务系统的通知消息后,将所述第二客户端发送的数据读写请求分配回所述第二数据服务系统,以使所述第二客户端从所述第二数据服务系统中读写待缓存数据,其中,所述通知消息为:所述第二数据服务系统接收到所述第一数据服务系统发送的同步数据之后的发送的消息。
6.一种数据存储系统,其特征在于,应用于第一数据服务系统,所述系统包括:
获取单元,用于获取至少两个待缓存数据;所述至少两个待缓存数据包括:与所述第一数据服务系统连接的第一客户端生成的数据和至少一个第二客户端生成的数据,或者,所述至少两个待缓存数据包括:至少两个与第二数据服务系统连接的第二客户端生成的数据;
存储单元,用于当所述至少两个待缓存数据中不包括所述第一客户端生成的数据时,将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统;其中,所述第二数据服务器系统中按照预设存储顺序存储有所述至少两个待缓存数据;
第一发送单元,用于当所述至少两个待缓存数据包括所述第一客户端生成的数据时,将所述至少两个待缓存数据按照预设存储顺序存储于所述第一数据服务系统;并将所述第一客户端生成的数据发送到第二数据服务系统,以使所述第二数据服务系统按照预设存储顺序存储所述至少两个待缓存数据。
7.根据权利要求6所述的系统,其特征在于,所述存储单元,包括:
第一存储子单元,用于将所述至少两个待缓存数据按照预设存储顺序存储于消息队列存储器;
第二存储子单元,用于根据所述消息队列存储器中至少两个待缓存数据的排序,依次将所述至少两个待缓存数据存储于所述第一数据服务系统中的缓存服务器。
8.根据权利要求6所述的系统,其特征在于,所述系统还包括:
接收单元,用于接收所述第二客户端发送的数据读写请求,其中,所述数据读写请求为:在所述第二数据服务系统发生故障时,与所述第二数据服务系统连接的第二客户端向所述第一数据服务系统读写数据的请求。
9.根据权利要求6-8任一项所述的系统,其特征在于,所述系统还包括:
第二发送单元,用于在接收到所述第二数据服务系统恢复故障的消息后,向所述第二数据服务系统发送同步数据,其中,所述同步数据为:所述第二数据服务系统故障期间,所述第一数据服务系统存储的数据,所述故障期间为:所述第一数据服务系统接收到所述第二客户端发送的数据读写请求的第一时刻与接收到所述第二数据服务系统恢复故障的消息的第二时刻之间的时间段。
10.根据权利要求9所述的系统,其特征在于,所述系统还包括:
分配单元,用于在接收到所述第二数据服务系统的通知消息后,将所述第二客户端发送的数据读写请求分配回所述第二数据服务系统,以使所述第二客户端从所述第二数据服务系统中读写待缓存数据,其中,所述通知消息为:所述第二数据服务系统接收到所述第一数据服务系统发送的同步数据之后的发送的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203346.5A CN107168642B (zh) | 2017-03-30 | 2017-03-30 | 一种数据存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203346.5A CN107168642B (zh) | 2017-03-30 | 2017-03-30 | 一种数据存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107168642A CN107168642A (zh) | 2017-09-15 |
CN107168642B true CN107168642B (zh) | 2020-05-01 |
Family
ID=59849009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710203346.5A Active CN107168642B (zh) | 2017-03-30 | 2017-03-30 | 一种数据存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168642B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111208949B (zh) * | 2020-01-13 | 2020-12-25 | 上海依图网络科技有限公司 | 一种确定分布式存储系统中的数据回滚时段的方法 |
CN111309261A (zh) * | 2020-02-16 | 2020-06-19 | 西安奥卡云数据科技有限公司 | 一种分布式存储系统中单节点上数据物理位置映射方法 |
CN116561089B (zh) * | 2023-07-10 | 2023-09-19 | 成都泛联智存科技有限公司 | 数据同步方法、装置、客户端和计算机可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307221A (zh) * | 2011-03-25 | 2012-01-04 | 国云科技股份有限公司 | 一种云存储系统及其实现方法 |
CN102724319B (zh) * | 2012-06-20 | 2015-03-18 | 新浪网技术(中国)有限公司 | 一种数据同步方法、相关存储服务器及系统 |
EP2869199A3 (en) * | 2013-11-04 | 2016-06-29 | Gridstore Inc. | Distributed reservation systems and methods |
CN103812934B (zh) * | 2014-01-28 | 2017-02-15 | 浙江大学 | 基于云存储系统的遥感数据发布方法 |
WO2016183564A1 (en) * | 2015-05-14 | 2016-11-17 | Walleye Software, LLC | Data store access permission system with interleaved application of deferred access control filters |
CN105739924B (zh) * | 2016-01-29 | 2018-05-11 | 华为技术有限公司 | 基于缓存集群的缓存方法和系统 |
-
2017
- 2017-03-30 CN CN201710203346.5A patent/CN107168642B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107168642A (zh) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020177533A1 (zh) | 电子票据标识分配方法、电子票据生成方法、装置及系统 | |
CN107528872B (zh) | 一种数据恢复方法、装置及云存储系统 | |
CN108833521B (zh) | 消息推送方法、装置、系统、计算机设备和存储介质 | |
CN104272274B (zh) | 一种分布式文件存储系统中的数据处理方法及设备 | |
CN108833479B (zh) | 一种数据同步方法和装置 | |
CN108712457A (zh) | 基于Nginx反向代理的后端服务器动态负载调整方法及装置 | |
CN104378423B (zh) | 元数据集群分布式存储系统及读取、写入存储数据的方法 | |
CN108572793B (zh) | 数据写入和数据恢复方法、装置、电子设备及存储介质 | |
CN112199419B (zh) | 一种分布式时序数据库、存储方法、设备及存储介质 | |
CN107168642B (zh) | 一种数据存储方法及系统 | |
CN109361525B (zh) | 重启分布式部署多服务的方法、装置、控制终端及介质 | |
CN105677673B (zh) | 业务处理方法、装置及系统 | |
CN107707616A (zh) | 一种数据传输方法及系统 | |
CN105554143A (zh) | 一种高可用缓存服务器及其数据处理方法和系统 | |
CN112351068A (zh) | 信息同步方法、系统、装置、计算机设备和存储介质 | |
CN111352943A (zh) | 实现数据一致性的方法和装置、服务器和终端 | |
CN110099084A (zh) | 一种保证存储服务可用性的方法、系统及计算机可读介质 | |
CN109756573A (zh) | 一种基于区块链的文件系统 | |
CN110196843A (zh) | 一种基于容器集群的文件分发方法及容器集群 | |
CN113242174A (zh) | 邮件同步方法、装置、计算机设备和存储介质 | |
CN112822091A (zh) | 一种消息处理方法和装置 | |
CN110534136B (zh) | 录音的方法和装置 | |
CN106776151A (zh) | Samba集群tdb数据库记录备份方法、装置及系统 | |
JP2010044553A (ja) | データ処理方法、クラスタシステム、及びデータ処理プログラム | |
CN108200151A (zh) | 一种分布式存储系统中ISCSI Target负载均衡方法和装置 |
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 |