CN111147554A - 一种数据的存储方法、装置及计算机系统 - Google Patents
一种数据的存储方法、装置及计算机系统 Download PDFInfo
- Publication number
- CN111147554A CN111147554A CN201911276649.5A CN201911276649A CN111147554A CN 111147554 A CN111147554 A CN 111147554A CN 201911276649 A CN201911276649 A CN 201911276649A CN 111147554 A CN111147554 A CN 111147554A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- stored
- message
- storage end
- 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
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据的存储方法、装置及计算机系统,其中所述方法包括:接收客户端发送的待存储数据;将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;接收所述存储端返回的所述写入成功信号;当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息,在完成了待存储数据的条带化存储的同时也实现了对待存储数据包含的所有数据片的同步备份,降低了对硬盘空间的需求,减少了对网络带宽的消耗。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据的存储方法、装置及计算机系统。
背景技术
在现有技术中,在存储消息队列或者消息主题产生的数据时,通常使用将据固化为文件、将文件保存到对应的服务器磁盘中的方法。为了保证当数据的服务器无法工作时,仍能在需要时读取到对应的数据,需要预先在备用服务器中备份这些数据。在数据的备份的过程中,需要在主服务器、备用服务器间对数据文件进行全量或增量拷贝,这种方式需要在每一备份服务器上都备份完整的数据,占用了大量的磁盘空间,增加了网络开销;同时主/备服务器不能做到同时可用,造成了资源浪费,在极端情况下当出现网络故障等情况时,主-备服务器间的通信可能会丢失数据,导致备份服务器备份了错误的数据,降低了该备份方案的可靠性。
发明内容
为了解决现有技术的不足,本发明的主要目的在于提供一种数据的存储方法,以实现对待存储数据的条带化存储及备份。
为了达到上述目的,第一方面本发明提供了一种数据的存储方法,所述方法包括:
接收客户端发送的待存储数据;
将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
接收所述存储端返回的所述写入成功信号;
当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
在一些实施例中,所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题对应唯一的写入线程;
所述将每一所述数据片存入对应的所述存储端包括:
调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将每一所述数据片存入对应的所述存储端。
在一些实施例中,所述待存储数据还包含所述待存储数据的识别码;
所述按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端后,所述方法还包括:
按照预设的编号规则,确定每一所述数据片的序列号;
根据每一所述数据片的序列号、所述识别码、每一所述数据片对应的所述存储端,记录每一所述序列号对应的所述存储端及所述识别码。
在一些实施例中,确定所述待存储数据存储成功后,所述方法还包括:
向每一返回了所述写入成功信号的所述存储端发送对应的所述数据片的存储成功信号,以便所述存储端确认对应的所述数据片已存储成功。
在一些实施例中,所述方法还包括:
接收客户端的数据查询请求,所述数据查询请求包含待查询数据的识别码;
根据记录的每一所述序列号对应的存储端及识别码,确定包含的所述识别码对应的所述序列号及所述存储端;
根据对应的所述序列号,从对应的所述存储端获取对应的所述数据片,并将所述数据片返回给发送所述数据查询请求的客户端。
第二方面,本申请提供了一种数据的存储方法,所述方法包括:
代理端接收客户端发送的待存储数据;
代理端将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
代理端将每一所述数据片存入对应的所述存储端;
所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
代理端接收所述存储端返回的所述写入成功信号;
代理端判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
第三方面,本申请提供了一种数据的存储装置,所述装置包括:
接收模块,用于接收客户端发送的待存储数据及存储端返回的写入成功信号;
确定模块,用于将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
写入模块,用于将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
处理模块,用于当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
在一些实施例中,所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题对应唯一的写入线程,所述写入模块还可用于调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将所述数据片写入对应的所述存储端。
在一些实施例中,所述待处理数据还包含了所述待处理数据的识别码,所述写入模块还可用于按照预设的编号规则,确定每一所述数据片的序列号;根据每一所述数据片的序列号、所述识别码、每一所述数据片对应的存储端,记录每一所述序列号对应的存储端及识别码。
第四方面,本申请提供了一种计算机系统,所述系统包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收客户端发送的待存储数据;
将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
接收所述存储端返回的所述写入成功信号;
当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
本发明实现的有益效果为:
本发明公开了通过将待存储数据切分为数据片,并将每个数据片分别写入到确定的至少两台存储端中,在完成了待存储数据的条带化存储的同时也实现了对待存储数据包含的所有数据片的同步备份,不需要在所有存储端中都存储完整的待存储数据,降低了对硬盘资源的需求,节约了网络带宽;进一步地,本申请还公开了存储端用于在完成对数据片的写入后返回所述数据片的写入成功信号,代理端接收所述存储端返回的所述写入成功信号;当判断所有所述数据片的所述写入成功信号的数量超过预设阈值后,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息,即只要某个数据片成功写入的存储端的数量大于预设阈值时,就可认定该片数据片成功完成了存储,当待存储数据的所有数据片都完成了存储时,就认定完成了对待存储数据完整存储,实现了对待存储数据完整性的确认。
本申请还公开了所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题只能由一条对应的写入线程写入存储端;所述将所述数据片分别写入每一所述数据片对应的至少两台存储端包括:调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将所述数据片写入按照预设规则确定的至少两台存储端,保证了每个消息队列或消息主题只能由一条对应的写入线程写入存储端,保证了数据片存储的顺序性和整体性;
进一步地,本申请还公开了所述待存储数据还包含所述待存储数据的识别码;按照预设的编号规则,确定每一所述数据片的序列号;根据每一所述数据片的序列号、所述待存储数据的识别码、每一所述数据片对应的存储端,记录每一所述序列号对应的存储端及识别码,便于在后续查找所述待存储数据时可根据所述序列号查找到该待存储数据包含的数据片所存储的存储端;
同时在确定所述待存储数据存储成功后,本申请公开了向每一返回了写入成功信号的存储端发送对应的所述数据片的存储成功信号,以便所述存储端确认对应的数据片已存储成功,使得每一存储端了解其存储的数据片是否完成了成功存储,后续存储端可将未接收到成功存储信号的失效数据片删除,保证客户端在请求数据时不会获得失效数据。
本发明所有产品并不需要具备上述所有效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据片结构图;
图2是本申请实施例提供的分布式存储系统结构图;
图3是本申请实施例提供的方法流程图;
图4是本申请实施例提供的装置结构图;
图5是本申请实施例提供的计算机系统结构图;
图6是本申请实施例提供的Zookeeper架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术中所述,现有技术中对消息队列或消息主题产生的实时消息,通常首先将消息存储在消息日志文件池中,该池中包含了多个固定大小、可复用的消息日志文件Journa l来存储消息;对某些未得到客户端及时消费的消息队列或消息主题的消息,当堆积的消息量超过预设阈值时,就将该消息队列或消息主题之后产生的消息存放到Page文件中。在原有的消息日志文件可以存储所有消息队列或者消息主题的消息,page文件以一个消息队列或者消息主题对应一个Page文件目录的方式存储,某个特定目录下page文件中的消息全部来自同一个消息主题或者消息队列。当一个消息被消费后,可从Journa l文件或Page文件中删除这条消息。如果需要在存储Journa l和page的主服务器和备份服务器间进行复制备份,就需要在主备服务器之间进行journa l和page文件的传输,假如在传输过程中出现服务器宕机或网络传输失败,就会导致备份失败,影响整个消息存储系统的高可用性。
为了解决上述技术问题,本申请提出了通过接收客户端发送的待存储数据;将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;接收所述存储端返回的所述写入成功信号;当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息,实现了对待存储数据的待存储数据的条带化存储及同步备份。
实施例一
为了实现上述目的,可以建立一个基于顺序性原子广播的分布式数据存储系统,该系统包含了代理服务器和存储服务器,以降低对硬盘资源的需求,节约网络带宽。
为了建立基于顺序性原子广播的分布式数据存储系统,该系统需要满足顺序性原子广播的四个重要的特性,包括:
可靠性:如果某个存储服务器保存了一条消息,那么所有存储服务器应当能够读取到这条消息;
一致性:每个存储服务器上保存的对应同一消息的数据片应当相同;
整体性:一条被广播的消息,最多只能被每个存储服务器收取一次;
顺序性:消息应当是完全顺序排列的。例如,如果某个存储服务器先收到消息1后收到消息2,那么其余所有存储服务器必须也先收到消息1后收到消息2。
为了实现顺序性原子广播,在所述分布式数据存储系统中,做出了如下的设置:
如图1所示,在代理服务器中,每条消息队列唯一对应一条数据流,该数据流唯一对应一条写入线程。当该消息队列产生了需要存储的消息时,由对应的写入线程将需要存储的消息顺序写入数据片中,顺序的数据片组成了这条消息队列对应的数据流,该数据流包含了这条消息队列的所有需要存储的消息。
在完成了数据片的写入后,代理服务器中对应的写入线程还会给每个数据片分配一个顺序递增的ID,并按顺序向存储服务器发送且仅发送一次,以保证该分布式存储系统的顺序性和整体性。
当代理服务器确认某次待存储的消息已经完成存储后,就关闭这次消息对应的数据片的写入权限,不允许其他存储服务器对其进行修改,但其他存储服务器可以重复读取这个数据片,保证了该分布式存储系统的可靠性。
为了保证分布式存储系统的一致性,当代理服务器确认某次待存储的消息已经完成存储后,就向存储了这次消息对应的数据片的存储服务器发送一条对应数据片的确认指示。当需要读取此次消息时,可读取收到了对应的确认指示的存储服务器,以避免读取到错误的或者失效的消息。
根据上述设置,图2示出了所述系统的系统结构图,包含客户端、代理服务器及存储服务器集群。其中,存储服务器集群中还包含了备用存储服务器,可在集群中可用的存储服务器少于预设值时替代不可用的存储服务器进行存储。
使用上述系统存储一条消息的具体过程包括:
步骤一、代理服务器接收客户端发送的待存储消息;
该待存储消息还包含了用于标记该消息的识别码及对应的消息队列的名称、编号等可用于识别对应消息队列的参数。
步骤二、代理服务器识别待存储消息对应的消息队列,并调用该消息队列对应的写入线程,使用所述写入线程将将需要存储的消息顺序写入数据片中;
步骤三、根据预设的规则,为每一数据片从存储集群中确定至少两个对应的存储端;
该预设的规则可以是负载均衡原则等用于保证每一存储服务器正常使用、每一数据片正常保存的规则。
步骤四、使用对应的写入线程,将每一数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
同时,写入线程还会给每个数据片分配一个顺序递增的ID,记录待存储消息对应的识别码,并按ID的顺序向对应的存储服务器发送数据片且仅发送一次。
步骤五、存储服务器在完成了数据片的写入之后,生成对应的数据片的写入成功信号并发送给代理服务器;
步骤六、代理服务器接收写入成功信号,当判断该消息的所有数据片返回的写入成功信号都超过了预设阈值后,确认该消息成功完成了存储,并向客户端返回成功存储的消息;
同时代理服务器还根据每个ID对应的存储服务器及识别码建立了对应的索引。
代理服务器会将每一数据片的索引、对应的ID进行记录,供查找时使用。优选的可存储于Zookeeper中,为了保证Zookeeper的稳定性,可预设多个Zookeeper的备份供需要时使用。
Zookeeper是一种分布式的服务框架,可用于存储数据。
如图6所示,在Zookeeper中为每个存储的数据片根据ID顺序建立了节点,用于存储对应的数据片的索引,并将节点存储为节点块。
步骤七、代理服务器向返回了写入成功信号的存储服务器发送对应的数据片的成功储存信号,存储服务器根据接收的成功储存信号确认对应的数据片已成功存储。
存储服务器还可在预设时间内未收到成功储存信号时,判断对应的数据片未成功储存,并删除未成功储存的数据片。
当需要从所述系统中读取储存的消息时,需要如下步骤:
步骤一、客户端向代理服务器发送消息读取请求,该请求中包含了请求的消息的识别码;
步骤二、代理服务器根据包含的识别码,从Zookeeper中查找该识别码对应的索引;
如图6所示,当代理服务器接收到消息读取请求后,即根据请求包含的消息的识别码,查找Zookeeper中该识别码对应的ID及该I D对应的索引,根据该索引查找对应的存储服务器以读取数据。
步骤三、代理服务器根据读取的索引,从对应的至少一台存储服务器读取请求的数据片并发送给请求的客户端。
当其中的一台对应的存储服务器无法使用时,由于集群内的其他存储服务器中同样保存了这台服务器内的所有数据片,可从其他的存储服务器读取所需的数据,保证了分布式存储系统的高可用性。
当然,本系统也可用于存储消息主题等其他的消息或数据来源。
实施例二
对应上述实施例,本申请提供了一种数据的存储方法,如图3所示,所述方法包括:
310、接收客户端发送的待存储数据;
320、将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
优选的,所述待存储数据还包含所述待存储数据的识别码;
所述方法还包括:
321、按照预设的编号规则,确定每一所述数据片的序列号;
根据每一所述数据片的序列号、所述识别码、每一所述数据片对应的所述存储端,记录每一所述序列号对应的所述存储端及所述识别码。
330、将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
优选的,所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题对应唯一的写入线程;
所述将每一所述数据片存入对应的所述存储端包括:
331、调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将每一所述数据片存入对应的所述存储端。
340、接收所述存储端返回的所述写入成功信号;
350、当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
优选的,所述方法还包括:
351、向每一返回了所述写入成功信号的所述存储端发送对应的所述数据片的存储成功信号,以便所述存储端确认对应的所述数据片已存储成功。
优选的,所述方法还包括:
352、接收客户端的数据查询请求,所述数据查询请求包含待查询数据的识别码;
根据记录的每一所述序列号对应的存储端及识别码,确定包含的所述识别码对应的所述序列号及所述存储端;
根据对应的所述序列号,从对应的所述存储端获取对应的所述数据片,并将所述数据片返回给发送所述数据查询请求的客户端。
发送数据查询请求的客户端可以不是存储所述待查询数据的客户端,本申请对此不加限定。
实施例二
对应上述实施例,本申请提供了一种数据的存储方法,应用于代理端及存储端,所述方法包括:
710、代理端接收客户端发送的待存储数据;
720、代理端将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
优选的,所述待存储数据还包含所述待存储数据的识别码;
所述方法还包括:
721、代理端按照预设的编号规则,确定每一所述数据片的序列号;
730、代理端将每一所述数据片存入对应的所述存储端;
优选的,所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题对应唯一的写入线程;
所述将每一所述数据片存入对应的所述存储端包括:
731、代理端调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将每一所述数据片存入对应的所述存储端。
740、所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
750、代理端接收所述存储端返回的所述写入成功信号;
751、代理端判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
优选的,所述方法还包括:
752、代理端每一返回了所述写入成功信号的所述存储端发送对应的所述数据片的存储成功信号,
存储端接收并确认对应的所述数据片已存储成功。
优选的,所述方法还包括:
753、代理端接收客户端的数据查询请求,所述数据查询请求包含待查询数据的识别码;
代理端根据记录的每一所述序列号对应的存储端及识别码,确定包含的所述识别码对应的所述序列号及所述存储端;
代理端根据对应的所述序列号,从对应的所述存储端获取对应的所述数据片,并将所述数据片返回给发送所述数据查询请求的客户端。
实施例三
对应上述实施例二,本申请提供了一种数据的存储装置,如图4所示,所述装置包括:
接收模块410,用于接收客户端发送的待存储数据及存储端返回的写入成功信号;
确定模块420,用于将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
写入模块430,用于将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
处理模块440,用于当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
优选的,所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题对应唯一的写入线程,所述写入模块430还可用于调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将所述数据片写入对应的所述存储端。
优选的,所述待处理数据还包含了所述待处理数据的识别码,所述写入模块430还可用于按照预设的编号规则,确定每一所述数据片的序列号;根据每一所述数据片的序列号、所述识别码、每一所述数据片对应的存储端,记录每一所述序列号对应的存储端及识别码。
优选的,所述处理模块440还可用于在确定所述待存储数据存储成功后,
向每一返回了所述写入成功信号的所述存储端发送对应的所述数据片的存储成功信号,以便所述存储端确认对应的所述数据片已存储成功。
优选的,所述接收模块410还可用于接收客户端的数据查询请求,所述数据查询请求包含待查询数据的识别码;
所述处理模块440还可用于根据记录的每一所述序列号对应的存储端及识别码,确定包含的所述识别码对应的所述序列号及所述存储端;根据对应的所述序列号,从对应的所述存储端获取对应的所述数据片,并将所述数据片返回给发送所述数据查询请求的客户端。
实施例四
对应上述方法、设备及系统,本申请实施例四提供一种计算机系统,包括:一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收客户端发送的待存储数据;
将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
接收所述存储端返回的所述写入成功信号;
当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
其中,图5示例性的展示出了计算机系统的架构,具体可以包括处理器1510,视频显示适配器1511,磁盘驱动器1512,输入/输出接口1513,网络接口1514,以及存储器1520。上述处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520之间可以通过通信总线1530进行通信连接。
其中,处理器1510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器1520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1520可以存储用于控制计算机系统1500运行的操作系统1521,用于控制计算机系统1500的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器1523,数据存储管理系统1524,以及图标字体处理系统1525等等。上述图标字体处理系统1525就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行。输入/输出接口1513用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口1514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1530包括一通路,在设备的各个组件(例如处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520)之间传输信息。
另外,该计算机系统1500还可以从虚拟资源对象领取条件信息数据库1541中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,存储器1520,总线1530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据的存储方法,其特征在于,所述方法包括:
接收客户端发送的待存储数据;
将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
接收所述存储端返回的所述写入成功信号;
当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
2.根据权利要求1所述的存储方法,其特征在于,所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题对应唯一的写入线程;
所述将每一所述数据片存入对应的所述存储端包括:
调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将每一所述数据片存入对应的所述存储端。
3.根据权利要求2所述的方法,其特征在于,所述待存储数据还包含所述待存储数据的识别码;
所述按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端后,所述方法还包括:
按照预设的编号规则,确定每一所述数据片的序列号;
根据每一所述数据片的序列号、所述识别码、每一所述数据片对应的所述存储端,记录每一所述序列号对应的所述存储端及所述识别码。
4.根据权利要求3所述的方法,其特征在于,确定所述待存储数据存储成功后,所述方法还包括:
向每一返回了所述写入成功信号的所述存储端发送对应的所述数据片的存储成功信号,以便所述存储端确认对应的所述数据片已存储成功。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
接收客户端的数据查询请求,所述数据查询请求包含待查询数据的识别码;
根据记录的每一所述序列号对应的存储端及识别码,确定包含的所述识别码对应的所述序列号及所述存储端;
根据对应的所述序列号,从对应的所述存储端获取对应的所述数据片,并将所述数据片返回给发送所述数据查询请求的客户端。
6.一种数据的存储方法,其特征在于,所述方法包括:
代理端接收客户端发送的待存储数据;
代理端将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
代理端将每一所述数据片存入对应的所述存储端;
所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
代理端接收所述存储端返回的所述写入成功信号;
代理端判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
7.一种数据的存储装置,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的待存储数据及存储端返回的写入成功信号;
确定模块,用于将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
写入模块,用于将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
处理模块,用于当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
8.根据权利要求7所述的存储装置,其特征在于,所述待存储数据包含所述待存储数据对应的消息队列或消息主题,每一消息队列或消息主题对应唯一的写入线程,所述写入模块还可用于调用所述消息队列或消息主题对应的写入线程,使用所述写入线程将所述数据片写入对应的所述存储端。
9.根据要求8所述的存储装置,其特征在于,所述待处理数据还包含了所述待处理数据的识别码,所述写入模块还可用于按照预设的编号规则,确定每一所述数据片的序列号;根据每一所述数据片的序列号、所述识别码、每一所述数据片对应的存储端,记录每一所述序列号对应的存储端及识别码。
10.一种计算机系统,其特征在于,所述系统包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收客户端发送的待存储数据;
将所述待存储数据分为数据片并按照预设规则分别为每一所述数据片从存储集群中确定至少两个对应的存储端;
将每一所述数据片存入对应的所述存储端,以便所述存储端在完成对所述数据片的写入后生成所述数据片的写入成功信号;
接收所述存储端返回的所述写入成功信号;
当判断所有所述数据片的所述写入成功信号的数量均超过预设阈值时,确定所述待存储数据存储成功,并向所述客户端返回成功存储消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276649.5A CN111147554A (zh) | 2019-12-12 | 2019-12-12 | 一种数据的存储方法、装置及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276649.5A CN111147554A (zh) | 2019-12-12 | 2019-12-12 | 一种数据的存储方法、装置及计算机系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111147554A true CN111147554A (zh) | 2020-05-12 |
Family
ID=70518100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911276649.5A Pending CN111147554A (zh) | 2019-12-12 | 2019-12-12 | 一种数据的存储方法、装置及计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147554A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835529A (zh) * | 2021-02-23 | 2021-05-25 | 深圳市得一微电子有限责任公司 | 一种数据存储方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107295080A (zh) * | 2017-06-19 | 2017-10-24 | 北京百度网讯科技有限公司 | 应用于分布式服务器集群的数据存储方法和服务器 |
CN109062512A (zh) * | 2018-07-26 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式存储集群、数据读写方法、系统及相关装置 |
CN109309631A (zh) * | 2018-08-15 | 2019-02-05 | 新华三技术有限公司成都分公司 | 一种基于通用网络文件系统写入数据的方法及装置 |
-
2019
- 2019-12-12 CN CN201911276649.5A patent/CN111147554A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107295080A (zh) * | 2017-06-19 | 2017-10-24 | 北京百度网讯科技有限公司 | 应用于分布式服务器集群的数据存储方法和服务器 |
CN109062512A (zh) * | 2018-07-26 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式存储集群、数据读写方法、系统及相关装置 |
CN109309631A (zh) * | 2018-08-15 | 2019-02-05 | 新华三技术有限公司成都分公司 | 一种基于通用网络文件系统写入数据的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835529A (zh) * | 2021-02-23 | 2021-05-25 | 深圳市得一微电子有限责任公司 | 一种数据存储方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
US10817386B2 (en) | Virtual machine recovery method and virtual machine management device | |
CN110311831B (zh) | 基于容器云的系统资源监控方法及相关设备 | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
CN108737132B (zh) | 一种告警信息处理方法及装置 | |
CN114637475A (zh) | 一种分布式存储系统控制方法、装置及可读存储介质 | |
CN106446168B (zh) | 一种面向分布式数据仓库的加载客户端实现方法 | |
CN110753084B (zh) | 上链数据读取方法、缓存服务器及计算机可读存储介质 | |
EP3786802A1 (en) | Method and device for failover in hbase system | |
CN112286723A (zh) | 机房容灾控制方法、终端及存储介质 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN111125057B (zh) | 一种业务请求的处理方法、装置及计算机系统 | |
CN115629901A (zh) | 日志回放方法及装置、数据恢复方法及装置、电子设备 | |
CN113407356B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111147554A (zh) | 一种数据的存储方法、装置及计算机系统 | |
CN112181724B (zh) | 大数据容灾方法、装置和电子设备 | |
CN114189429A (zh) | 一种服务器集群故障的监测系统、方法、装置及介质 | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN114328007B (zh) | 一种容器备份还原方法、装置及其介质 | |
CN112463514A (zh) | 分布式缓存集群的监测方法和装置 | |
CN115221242A (zh) | 一种数据同步方法、装置及计算机可读存储介质 | |
CN114443325A (zh) | 一种接口调用异常的异步重试方法及系统 | |
CN113239059A (zh) | 一种分布式锁的切换方法、装置、服务器和存储介质 | |
CN114722261A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200512 |
|
RJ01 | Rejection of invention patent application after publication |