CN108123967A - 一种集群系统的数据同步方法和系统 - Google Patents

一种集群系统的数据同步方法和系统 Download PDF

Info

Publication number
CN108123967A
CN108123967A CN201611061083.0A CN201611061083A CN108123967A CN 108123967 A CN108123967 A CN 108123967A CN 201611061083 A CN201611061083 A CN 201611061083A CN 108123967 A CN108123967 A CN 108123967A
Authority
CN
China
Prior art keywords
server
data
master server
data change
dependent
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
Application number
CN201611061083.0A
Other languages
English (en)
Inventor
冯梅
胡福祥
赵明清
高毅夫
任安
阳波
李斌
周月兰
宋九光
王旭
冯佳
李伟
栾彦鸥
路纯
李光
刘瑞雪
朱玉立
万军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Petrochina Co Ltd
Original Assignee
Petrochina Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Petrochina Co Ltd filed Critical Petrochina Co Ltd
Priority to CN201611061083.0A priority Critical patent/CN108123967A/zh
Publication of CN108123967A publication Critical patent/CN108123967A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication 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)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种集群系统的数据同步方法和系统,其中,该方法包括:数据变更的第一从属服务器向主服务器发送数据变更的通知消息;主服务器在接收到通知消息时,向集群系统中的从属服务器发送数据变更请求;从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向主服务器返回已更改完成的第一答复消息;当主服务器在确定接收完所有的从属服务器返回的第一答复消息后,执行主服务器的数据更改。在本发明实施例中,主服务器通过发送消息的方式通知从属服务器修改数据,在从属服务器都同步修改完数据之后,主服务器才修改自身的数据,从而可以保证在主服务器发生故障时,主服务器和从属服务器数据的同步。

Description

一种集群系统的数据同步方法和系统
技术领域
本发明涉及地质勘探技术领域,特别涉及一种集群系统的数据同步方法和系统。
背景技术
目前,跨区域数据同步技术主要包含两个方面:数据同步和服务器切换。传统数据库的跨区域方案有以下两种:
1)Master/Slave方案
这是最常用的方案,适用于大多数的跨区域同步需求。Master(主服务器)将操作日志实时地发送到Slave(从服务器),Slave作为Master的一个Hot Backup(热备份)。当Master宕机时,服务将切换到Slave,因而需要修改客户端逻辑使得Master失效时可以自动寻找新的Master。
然而,在Master/Slave方案中,Master和Slave一般不是强同步的,所以,切换到Slave后可能会丢失宕机前对Master中数据的部分更新。如果Master和Slave是强同步的,即:所有的数据必须同时写成功,Master和Slave才可以返回客户端。这样会产生另外一个问题,即:Master和Slave中任何一台机器宕机时,都不允许写服务,可用性太差。
2)Bigtable跨区域方案
集群可以是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。Bigtable跨区域部署两套集群,每个区域有各自的GFS存储(分布式文件系统)和Bigtable Master。Bigtable Tablet将操作日志储存至GFS成功后返回客户端,并生成异步任务将操作日志同步到备机房。这里的难点在于Tablet宕机时,某些操作日志还没有完成同步,因此,操作日志同步点也需要记录到GFS中。当其它TabletServer加载先前宕机的Tablet中的数据时,将继续发送没有同步完成的操作日志到备机房。
然而,如果主机房整体发生故障,比如机房停电,可以手工将服务切换到备机房,这时会丢失最后的一部分更新操作,需要人工执行修正操作。
发明内容
本发明提供了一种集群系统的数据同步方法和系统,以解决现有技术中在进行跨区域数据同步时,当主服务器发生故障会导致部分数据丢失的问题。
本发明实施例提供了一种集群系统的数据同步方法,所述集群系统中可以包括主服务器和至少一个从属服务器,可以包括:数据变更的第一从属服务器向主服务器发送数据变更的通知消息;所述主服务器在接收到所述通知消息时,向集群系统中的从属服务器发送数据变更请求;所述从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息;当所述主服务器在确定接收完所有的从属服务器返回的第一答复消息后,执行所述主服务器的数据更改。
在一个实施例中,所述主服务器可以为所述集群系统中的任意一个服务器。
在一个实施例中,在数据变更的第一从属服务器向主服务器发送数据变更的通知消息之前,所述第一从属服务器可以按照以下步骤确定所述主服务器:数据变更的第一从属服务器在所述集群系统中广播主服务器确认请求;接收到所述主服务器确认请求的第二从属服务器计算自身服务器的性能特征数据和与所述第一从属服务器的延时时间;根据所述性能特征数据和/或与所述第一从属服务器的延时时间生成第二答复消息;将所述第二答复消息返回给所述第一从属服务器;所述第一从属服务器基于接收到的所述集群系统中的第二从属服务器发送的第二答复消息,按照预设的匹配要求确定出主服务器。
在一个实施例中,所述第二从属服务器可以包括所述第一从属服务器。
在一个实施例中,在所述从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息之后,所述方法还可以包括:当所述从属服务器检测到没有发送成功的第一答复消息时,所述从属服务器恢复至更改前的数据;所述第一从属服务器在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
在一个实施例中,在所述从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息之后,所述方法还可以包括:当所述主服务器没有接收到一个或一个以上的第一答复消息时,数据同步请求失败。
在一个实施例中,在向集群系统中的从属服务器发送数据变更请求之前,所述方法还可以包括:所述主服务器在接收到所述通知消息时,向所述第一从属服务器发送接收到所述通知消息的确认消息。
在一个实施例中,向所述第一从属服务器发送接收到所述通知消息的确认消息,可以包括:所述第一从属服务器检测到没有接收到所述确认消息,则所述第一从属服务器在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
本发明实施例还提供了一种集群系统的数据同步方法,可以包括:在接收到数据变更的第一从属服务器发送的数据变更的通知消息时,向所述集群系统中的从属服务器发送数据变更请求;当确定接收完所有的从属服务器返回的已更改完成的第一答复消息后,执行相应的数据更改操作。
在一个实施例中,在向所述集群系统中的从属服务器发送数据变更请求之后,所述方法还可以包括:当没有接收到一个或一个以上的第一答复消息时,数据同步请求失败。
在一个实施例中,在向所述集群系统中的从属服务器发送数据变更请求之前,所述方法还可以包括:接收所述第一从属服务器发送的通知消息;在接收到所述通知消息时,向所述第一从属服务器发送接收到所述通知消息的确认消息。
本发明实施例还提供了一种集群系统的数据同步方法,可以包括:向所述主服务器发送数据变更的通知消息;接收来自所述主服务器的数据变更请求;基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
在一个实施例中,所述主服务器可以为所述集群系统中的任意一个服务器。
在一个实施例中,在向所述主服务器发送数据变更的通知消息之前,可以按照以下步骤确定所述主服务器:在所述集群系统中向第二从属服务器广播主服务器确认请求;接收所述第二从属服务器返回的基于自身服务器的性能特征数据和/或返回消息的延时时间所生成的第二答复消息;基于接收到的所述集群系统中的第二从属服务器发送的第二答复消息,按照预设的匹配要求确定出主服务器。
在一个实施例中,在向所述主服务器返回已更改完成的第一答复消息之后,所述方法还可以包括:检测所述第一答复数据是否发送成功;若发送成功,则实现数据同步;若未发送成功,则恢复至更改前的数据;在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
在一个实施例中,接收来自所述主服务器的数据变更请求,可以包括:接收来自所述主服务器的接收到所述通知消息的确认消息;当接收到所述确认消息时,接收来自所述主服务器的数据变更请求;当没有接收到所述确认消息时,数据同步请求失败;重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
本发明实施例还提供了一种集群系统的数据同步方法,可以包括:接收所述主服务器发送的数据变更请求;基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
在一个实施例中,在向所述主服务器返回已更改完成的第一答复消息之后,所述方法还可以包括:检测所述第一答复数据是否发送成功;若发送成功,则实现数据同步;若未发送成功,则恢复至更改前的数据;在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
本发明实施例还提供了一种集群系统的数据同步系统,所述集群系统中可以包括主服务器和至少一个从属服务器,其中:主服务器,用于在接收到数据变更的第一从属服务器发送的通知消息时,向集群系统中的从属服务器发送数据变更请求;以及,用于当确定接收完所有的从属服务器返回的已更改完成的第一答复消息后,执行相应的数据更改操作;至少一个从属服务器,用于向所述主服务器发送数据变更的通知消息;以及,用于接收来自所述主服务器的数据变更请求;基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
在本发明实施例中,主服务器在接收到数据变更的通知消息时,向集群系统中的从属服务器发送数据变更请求;从属服务器基于接收到的数据变更请求执行相应的数据更改操作,并在数据更改完成后向主服务器返回已更改完成的答复消息;主服务器在确定接收完所有的从属服务器返回的答复消息后,执行相应的数据更改。主服务器通过发送通知消息的方式通知所有的从属服务器进行相应的数据更改操作,在所有的从属服务器都同步更改完数据之后,主服务器才执行自身的数据更改,而不是在主服务器接收到数据变更请求后,直接进行数据更改,再对从属服务器中的数据进行修改的异步数据修改方法,可以保证在主服务器发生宕机等故障时,所有服务器数据的同步。本实施例所提出的方法逻辑简单,可以实现大规模的数据同步。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例的集群系统的数据同步方法的一种流程图;
图2是本发明实施例的集群系统的数据同步方法的一种应用场景的示意图;
图3是本发明实施例的集群系统的数据同步方法的另一种应用场景的示意图;
图4是本发明实施例的以主服务器的角度进行数据同步的一种实施例的方法流程图;
图5是本发明实施例的以数据变更的第一从属服务器的角度进行数据同步的一种实施例的方法流程图;
图6是本发明实施例的以未发送数据变更的从属服务器的角度进行数据同步的一种实施例的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
考虑到现有技术中在进行跨区域数据同步时,当主服务器发生故障会导致部分数据丢失的问题,发明人提出了通过发送数据变更的通知消息的方式通知从属服务器修改数据,在所有的从属服务器都同步修更改完数据之后,主服务器才修改自身的数据的方法。具体的,本发明实施例提出了一种集群系统的数据同步方法,如图1所示,可以包括以下步骤:
步骤101:数据变更的第一从属服务器向主服务器发送数据变更的通知消息;所述主服务器在接收到所述通知消息时,向集群系统中的从属服务器发送数据变更请求。
其中,所述主服务器和所述从属服务器包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需的必要软件,其可以对接收到的数据变更请求进行分析、处理,并将相应的数据请求反馈至客户端。同时,所述主服务器和所述从属服务器均可以处理写请求和读请求。所述主服务器和所述从属服务器可以提供预定端口,通过该预定端口可以接收数据变更。例如,所述主服务器和所述从属服务器之间可以基于HTTP、TCP/IP或FTP等网络协议以及网络通信模块进行网络数据交互。
在本申请的一个实施例中,所述集群系统中包括主服务器和至少一个从属服务器,其中,所述主服务器可以是所述集群中的任意一个服务器。
在数据变更的第一从属服务器向主服务器发送数据变更的通知消息之前,所述第一从属服务器可以按照以下步骤确定所述主服务器:首先,数据变更的第一从属服务器在所述集群系统中广播主服务器确认请求;接收到所述主服务器确认请求的第二从属服务器计算自身服务器的性能特征数据和与所述第一从属服务器的延时时间;根据所述性能特征数据和/或与所述第一从属服务器的延时时间生成第二答复消息;将所述第二答复消息返回给所述第一从属服务器;所述第一从属服务器基于接收到的所述集群系统中的第二从属服务器发送的第二答复消息,按照预设的匹配要求确定出主服务器。
将接收到来自应用层的数据变更消息的服务器叫作第一从属服务器,将接收到所述主服务器确认请求的服务器叫作第二从属服务器。在本申请的一个实施例中,所述第二从属服务器可以包括广播主服务器确认请求的所述第一从属服务器。
所述性能特征数据可以包括:所述服务器的运行时间、内存等数据,所述延时时间可以包括:所述第二从属服务器在接收到所述数据变更消息后的答复时间等。
下面通过一个具体的应用场景来说明确定所述主服务器的方法。所述第一从属服务器在所述集群系统中广播主服务器确认请求;接收到所述主服务器确认请求的第二从属服务器向所述第一从属服务器发送数字编号,其中,所述数字编号是各个从属服务器根据自身的性能特征和延时时间生成的;选取多个数字编号中的最大值所对应的从属服务器作为所述主服务器。采用上述方法选取所述主服务器时,每个服务器都有机会成为主服务器,主服务器可以为所述集群系统中的任意一个服务器,从而可以保证所有服务器在进行数据同步的过程中地位相同,从一定程度上可以保证数据的同步。特别地,所述第一从属服务器可以为所述主服务器。
所述主服务器在向所述集群系统中的从属服务器发送数据变更请求之前,所述主服务器在接收到所述通知消息时,可以先向所述第一从属服务器发送接收到所述通知消息的确认消息。若所述第一从属服务器检测到没有接收到所述确认消息,则所述第一从属服务器在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。若仍旧没有接收到所述确认消息,则再重复上述步骤101中的过程。
基于所述通知消息向所述第一从属服务器发送所述确认消息,所述第一从属服务器接收到所述确认消息,从而可以表明所述主服务器并没有宕机。然后,所述主服务器再向所述集群系统中的从属服务器发送数据变更请求。其中,所述主服务器在接收到所述通知消息时,向集群系统中的从属服务器发送的数据变更请求可以是和所述数据变更的通知消息中的数据更改完全相同,也可以是在所述数据变更的通知消息中加入所述主服务器标记、所述主服务器IP地址等后得到的,本申请对此不作限定。
在本实施例中,在确定所述主服务器的位置之后,所述主服务器可以基于接收到的数据变更请求的通知消息,向所述从属服务器发送接收到所述通知消息的确认消息,从而可以体现所述主服务器并没有发生宕机。进一步地,当所述第一从属服务器没有接收到来自所述主服务器的确认消息时,所述第一从属服务器重新向所述集群系统中的服务器发送主服务器确认请求,重新选取主服务器;并向重新确定的主服务器发送所述数据变更的通知消息。进一步地,针对现有技术中在所述主服务接收到数据变更请求的通知消息后,直接对所述主服务器进行数据更改,可能会导致当所述主服务器突然宕机时,所述从属服务器的数据还没有同步更新完,从而导致集群系统中的数据丢失问题,在本实施例中,在所述主服务器接收到数据变更请求的通知消息后,可以先不更改所述从属服务器中的数据,先通过发送消息的方式通知所述从属服务器更改数据,在所有的从属服务器更改完成数据之后,所述主服务器再进行相应的数据更改,从而在一定程度上可以保证在主服务器发生故障时,主服务器和从属服务器数据的同步。
步骤102:所述从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
在本实施例中,所述从属服务器在接收到所述主服务器的数据变更请求之后,按照所述数据变更请求执行相应的数据更改操作。在完成数据更改完成之后,可以向所述主服务器发送已经更改完成的第一答复消息。
值得注意的是,所述从属服务器中可能存在一些异常情况。例如:所述数据变更中存在某些数据和某个从属服务器中的数据不一致,此时,所述从属服务器可能会导致所述数据变更请求不成功,直接的体现就是,该从属服务器不会向所述主服务器发送已更改完成的第一答复消息,即,当所述主服务器没有接收到一个或一个以上的第一答复消息时,数据同步请求失败。在这种情况下,所述从属服务器可以进行数据回滚,并恢复至所述从属服务器的初始值。此时,可以通过来自应用上层的操作检查所述未向主服务器发送所述第一答复消息的从属服务器;所述主服务器可以修改该从属服务器中的异常数据,并重新向所述集群系统中的从属服务器发送所述数据变更请求。
步骤103:当所述主服务器在确定接收完所有的从属服务器返回的第一答复消息后,执行所述主服务器的数据更改。
具体的,所述从属服务器检测所述第一答复消息是否发送成功;当所有的第一答复消息均发送成功,则执行所述主服务器的数据更改。当所述从属服务器检测到没有发送成功的第一答复消息时,则所述从属服务器恢复至更改前的数据。所述第一从属服务器向所述集群系统中的服务器发送主服务器确认请求,重新选取主服务器;并向重新确定的主服务器发送所述数据变更的通知消息。
在本实施例中,所述主服务器在确定接收完所有的从属服务器返回的第一答复消息后,才执行所述主服务器的数据更改,可以保证所述集群系统中所有服务器的数据同步。如果所述主服务器在还没有接收到所有的从属服务器返回的第一答复消息时宕机了,即所述从属服务器检测到所述第一答复数据发送失败,那么此时所述从属服务器可以进行数据回滚,所述从属服务器中的数据恢复至更改前的状态,从而可以保证当集群系统中有服务器宕机时数据的同步。如果所述从属服务器判断所述第一答复数据发送成功,则所述主服务器基于所述数据更改请求更改数据。
下面通过一个具体的应用场景说明本实施例所提出的一种集群系统的数据同步过程。如图2所示,通过上述所提出的方法,数据变更的从属服务器1在接收到数据变更的通知消息之前,先向集群系统中的N+1台服务器发送主服务器确认请求,集群系统中的服务器在接收到确认请求后,向所述从属服务器1发送根据所述集群系统中的自身服务器的性能特征数据和与所述从属服务器1的延时时间生成的第二答复消息,所述从属服务器1基于接收到的所述集群系统中的服务器发送的第二答复消息,按照预设的匹配要求选取相应的服务器作为主服务器。在确定出所述主服务器之后,所述从属服务器1向所述主服务器发送数据变更的通知消息,在所述主服务器接收到所述通知消息之后,向所述从属服务器1发送接收到所述通知消息的确认消息。在所述从属服务器1接收到所述确认消息,即表明此时所述主服务器没有宕机之后,所述主服务器继续向所述从属服务器1以及其他N台从属服务器发送所述数据更改请求。所述N台从属服务器在接收到所述数据更改请求之后,首先可以判断所述N台从属服务器中的数据和所述数据更改请求中的数据是否存在冲突。当不存在冲突,即异常数据时,可以按照所述数据更改请求修改数据。在所述N台从属服务器均更改完数据之后,所述N台从属服务器向所述主服务器返回已更改完成的第一答复消息。所述N台从属服务器判断所述第一答复消息是否反馈成功,即,所述判断所述主服务器是否宕机。如果所述主服务器没有宕机,那么所述主服务器在接收到所有N台从属服务器的反馈消息之后,对所述主服务器自身的数据进行修改,从而可以完成数据的同步。
在实际应用的过程中,可以将本发明实施例所提出的一种集群系统的数据同步方法与邮件系统相结合,如图3所示。某公司分别在A、B和C三个地点设有工作处,该公司在这三个地点分别设置了三个服务器,这三个服务器与三个地点对应,分别为:服务器A、服务器B和服务器C,从而可以实现公司内部数据的流通和共享,并且这三个服务器均具有相同的域名。为了实现该公司的同一个员工在这三个地点均可以在公司系统读取到相同的邮件内容,当服务器A接收到新邮件时,该服务器可以通过上述实施例中的数据处理方法分别向该公司系统中服务器A、B、C分别发送主服务器确认请求,这三个服务器在接收到确认请求之后,分别向服务器A、服务器B和服务器C返回第三答复消息,服务器A根据所述第三答复消息,按照预设的要求选择服务器B作为主服务器。从而,服务器B向服务器A、B、C发送数据更改请求,服务器A、B、C根据所述数据更改请求执行相应的数据更改操作,并向所述服务器B返回已更改完成的第一答复消息,在所述服务器B接收完所有的从属服务器返回的第一答复消息之后,对邮件执行相应的数据更改,从而可以实现A、B、C三个地点均可以接收到该邮件,即可以实现不同区域数据的同步。
本申请提供的集群系统的数据同步方法和服务器,主服务器在接收到数据变更的通知消息时,向集群系统中的从属服务器发送数据变更请求;从属服务器基于接收到的数据变更请求执行相应的数据更改操作,并在数据更改完成后向主服务器返回已更改完成的答复消息;主服务器在确定接收完所有的从属服务器返回的答复消息后,执行相应的数据更改。主服务器通过发送通知消息的方式通知所有的从属服务器进行相应的数据更改操作,在所有的从属服务器都同步更改完数据之后,主服务器才执行自身的数据更改,而不是在主服务器接收到数据变更请求后,直接进行数据更改,再对从属服务器中的数据进行修改的异步数据修改方法,可以保证在主服务器发生宕机等故障时,所有服务器数据的同步。本实施例所提出的方法逻辑简单,可以实现大规模的数据同步。
基于集群系统的数据同步过程,本申请提供了集群系统的一种实施例,所述系统可以包括:
主服务器,用于在接收到数据变更的第一从属服务器发送的通知消息时,向集群系统中的从属服务器发送数据变更请求;以及,用于当确定接收完所有的从属服务器返回的已更改完成的第一答复消息后,执行相应的数据更改操作;
至少一个从属服务器,用于向所述主服务器发送数据变更的通知消息;以及,用于接收来自所述主服务器的数据变更请求;基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
基于上述集群系统的数据同步方法,以主服务器的角度提出数据同步方法的一个实施例,图4是该实施例的方法流程图,如图4所示,所述方法可以包括:
步骤401:在接收到数据变更的第一从属服务器发送的数据变更的通知消息时,向所述集群系统中的从属服务器发送数据变更请求;
步骤402:当确定接收完所有的从属服务器返回的已更改完成的第一答复消息后,执行相应的数据更改操作。
步骤401和步骤402的具体实施方式可以参考步骤101-步骤103的实施方式,在此不再赘述。
可选的,在本申请的一个实施例中,如果有一个或一个以上的第一答复消息没有接收到,则数据同步请求失败。
可选的,在本申请的一个实施例中,在向所述集群系统中的从属服务器发送数据变更请求之前,所述方法还包括:接收所述第一从属服务器发送的通知消息;在接收到所述通知消息时,向所述第一从属服务器发送接收到所述通知消息的确认消息,从而,可以保证主服务器此时是非宕机状态。
基于上述以主服务器的角度提出数据同步方法,本申请还提出了一种服务器,所述服务器可以包括:
变更请求发送模块,可以用于在接收到数据变更的第一从属服务器发送的数据变更的通知消息时,向所述集群系统中的从属服务器发送数据变更请求;
更改操作执行模块,可以用于在确定接收完所有的从属服务器返回的已更改完成的第一答复消息之后,执行相应的数据更改操作。
在一个实施例中,所述服务器还可以包括:请求失败模块,可以用于在向所述集群系统中的从属服务器发送数据变更请求之后在当没有接收到一个或一个以上的第一答复消息的情况下,数据同步请求失败。
在一个实施例中,所述服务器还可以包括:接收模块,可以用于在向所述集群系统中的从属服务器发送数据变更请求之前,接收所述第一从属服务器发送的通知消息;发送模块,可以用于在接收到所述通知消息时,向所述第一从属服务器发送接收到所述通知消息的确认消息。
基于上述集群系统的数据同步方法,以数据变更的第一从属服务器的角度提出数据同步方法的另一个实施例,图5是本申请提供的数据同步的另一种实施例的方法流程图,如图5所示,所述方法可以包括:
步骤501:向所述主服务器发送数据变更的通知消息;
步骤502:接收来自所述主服务器的数据变更请求;
步骤503:基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
步骤501和步骤503的具体实施方式可以参考步骤101-步骤103的实施方式,在此不再赘述。
可选的,在本申请的一个实施例中,在向所述主服务器返回已更改完成的第一答复消息之后,所述方法还可以包括:检测所述第一答复数据是否发送成功;若发送成功,则实现数据同步;若未发送成功,则恢复至更改前的数据;在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
可选的,在本申请的一个实施例中,接收来自所述主服务器的数据变更请求,可以包括:接收来自所述主服务器的接收到所述通知消息的确认消息;当接收到所述确认消息时,接收来自所述主服务器的数据变更请求;当没有接收到所述确认消息时,数据同步请求失败;重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
基于上述以数据变更的第一从属服务器的角度提出数据同步方法,本申请还提出了一种服务器,所述服务器可以包括:
通知消息发送模块,可以用于向所述主服务器发送数据变更的通知消息;
变更请求接收模块,可以用于接收来自所述主服务器的数据变更请求;
答复消息返回模块,可以用于基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
基于上述集群系统的数据同步方法,以未发送数据变更的从属服务器的角度提出数据同步方法的另一个实施例,图6是本申请提供的数据同步的另一种实施例的方法流程图,如图6所示,所述方法可以包括:
步骤601:接收所述主服务器发送的数据变更请求;
步骤602:基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
步骤601和步骤602的具体实施方式可以参考步骤101-步骤103的实施方式,在此不再赘述。
可选的,在本申请的一个实施例中,在向所述主服务器返回已更改完成的第一答复消息之后,所述方法还可以包括:检测所述第一答复数据是否发送成功;若发送成功,则实现数据同步;若未发送成功,则恢复至更改前的数据;在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
基于上述以未发送数据变更的从属服务器的角度提出数据同步方法,本申请还提出了一种服务器,所述服务器可以包括:
请求接收模块,可以用于接收所述主服务器发送的数据变更请求;
消息返回模块,可以用于基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
从以上的描述中,可以看出,本发明实施例实现了如下技术效果:主服务器在接收到数据变更的通知消息时,向集群系统中的从属服务器发送数据变更请求;从属服务器基于接收到的数据变更请求执行相应的数据更改操作,并在数据更改完成后向主服务器返回已更改完成的答复消息;主服务器在确定接收完所有的从属服务器返回的答复消息后,执行相应的数据更改。主服务器通过发送通知消息的方式通知所有的从属服务器进行相应的数据更改操作,在所有的从属服务器都同步更改完数据之后,主服务器才执行自身的数据更改,而不是在主服务器接收到数据变更请求后,直接进行数据更改,再对从属服务器中的数据进行修改的异步数据修改方法,可以保证在主服务器发生宕机等故障时,所有服务器数据的同步。本实施例所提出的方法逻辑简单,可以实现大规模的数据同步。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的和区别类似的对象,两者之间并不存在先后顺序,也不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (19)

1.一种集群系统的数据同步方法,其特征在于,所述集群系统中包括主服务器和至少一个从属服务器,所述方法包括:
数据变更的第一从属服务器向主服务器发送数据变更的通知消息;所述主服务器在接收到所述通知消息时,向集群系统中的从属服务器发送数据变更请求;
所述从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息;
当所述主服务器在确定接收完所有的从属服务器返回的第一答复消息后,执行所述主服务器的数据更改。
2.如权利要求1所述的方法,其特征在于,所述主服务器为所述集群系统中的任意一个服务器。
3.如权利要求2所述的方法,其特征在于,在数据变更的第一从属服务器向主服务器发送数据变更的通知消息之前,所述第一从属服务器按照以下步骤确定所述主服务器:
数据变更的第一从属服务器在所述集群系统中广播主服务器确认请求;
接收到所述主服务器确认请求的第二从属服务器计算自身服务器的性能特征数据和与所述第一从属服务器的延时时间;根据所述性能特征数据和/或与所述第一从属服务器的延时时间生成第二答复消息;将所述第二答复消息返回给所述第一从属服务器;
所述第一从属服务器基于接收到的所述集群系统中的第二从属服务器发送的第二答复消息,按照预设的匹配要求确定出主服务器。
4.如权利要求3所述的方法,其特征在于,所述第二从属服务器包括所述第一从属服务器。
5.如权利要求1所述的方法,其特征在于,在所述从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息之后,所述方法还包括:
当所述从属服务器检测到没有发送成功的第一答复消息时,所述从属服务器恢复至更改前的数据;
所述第一从属服务器在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
6.如权利要求1所述的方法,其特征在于,在所述从属服务器基于接收到的数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息之后,所述方法还包括:
当所述主服务器没有接收到一个或一个以上的第一答复消息时,数据同步请求失败。
7.如权利要求1所述的方法,其特征在于,在向集群系统中的从属服务器发送数据变更请求之前,所述方法还包括:
所述主服务器在接收到所述通知消息时,向所述第一从属服务器发送接收到所述通知消息的确认消息。
8.如权利要求7所述的方法,其特征在于,向所述第一从属服务器发送接收到所述通知消息的确认消息,包括:
所述第一从属服务器检测到没有接收到所述确认消息,则所述第一从属服务器在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
9.一种集群系统的数据同步方法,其特征在于,包括:
在接收到数据变更的第一从属服务器发送的数据变更的通知消息时,向所述集群系统中的从属服务器发送数据变更请求;
当确定接收完所有的从属服务器返回的已更改完成的第一答复消息后,执行相应的数据更改操作。
10.如权利要求9所述的方法,其特征在于,在向所述集群系统中的从属服务器发送数据变更请求之后,所述方法还包括:
当没有接收到一个或一个以上的第一答复消息时,数据同步请求失败。
11.如权利要求9所述的方法,其特征在于,在向所述集群系统中的从属服务器发送数据变更请求之前,所述方法还包括:
接收所述第一从属服务器发送的通知消息;
在接收到所述通知消息时,向所述第一从属服务器发送接收到所述通知消息的确认消息。
12.一种集群系统的数据同步方法,其特征在于,包括:
向所述主服务器发送数据变更的通知消息;
接收来自所述主服务器的数据变更请求;
基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
13.如权利要求12所述的方法,其特征在于,所述主服务器为所述集群系统中的任意一个服务器。
14.如权利要求12所述的方法,其特征在于,在向所述主服务器发送数据变更的通知消息之前,按照以下步骤确定所述主服务器:
在所述集群系统中向第二从属服务器广播主服务器确认请求;
接收所述第二从属服务器返回的基于自身服务器的性能特征数据和/或返回消息的延时时间所生成的第二答复消息;
基于接收到的所述集群系统中的第二从属服务器发送的第二答复消息,按照预设的匹配要求确定出主服务器。
15.如权利要求12所述的方法,其特征在于,在向所述主服务器返回已更改完成的第一答复消息之后,所述方法还包括:
检测所述第一答复数据是否发送成功;若发送成功,则实现数据同步;
若未发送成功,则恢复至更改前的数据;在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
16.如权利要求12所述的方法,其特征在于,接收来自所述主服务器的数据变更请求,包括:
接收来自所述主服务器的接收到所述通知消息的确认消息;
当接收到所述确认消息时,接收来自所述主服务器的数据变更请求;
当没有接收到所述确认消息时,数据同步请求失败;重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
17.一种集群系统的数据同步方法,其特征在于,包括:
接收所述主服务器发送的数据变更请求;
基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
18.如权利要求17所述的方法,其特征在于,在向所述主服务器返回已更改完成的第一答复消息之后,所述方法还包括:
检测所述第一答复数据是否发送成功;若发送成功,则实现数据同步;
若未发送成功,则恢复至更改前的数据;在所述集群系统中广播主服务器确认请求,重新选取主服务器;向重新确定的主服务器发送所述数据变更的通知消息。
19.一种集群系统的数据同步系统,其特征在于,所述集群系统中包括主服务器和至少一个从属服务器,其中:
主服务器,用于在接收到数据变更的第一从属服务器发送的通知消息时,向集群系统中的从属服务器发送数据变更请求;以及,用于当确定接收完所有的从属服务器返回的已更改完成的第一答复消息后,执行相应的数据更改操作;
至少一个从属服务器,用于向所述主服务器发送数据变更的通知消息;以及,用于接收来自所述主服务器的数据变更请求;基于接收到的所述数据变更请求执行相应的数据更改操作,以及在数据更改完成后向所述主服务器返回已更改完成的第一答复消息。
CN201611061083.0A 2016-11-28 2016-11-28 一种集群系统的数据同步方法和系统 Pending CN108123967A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611061083.0A CN108123967A (zh) 2016-11-28 2016-11-28 一种集群系统的数据同步方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611061083.0A CN108123967A (zh) 2016-11-28 2016-11-28 一种集群系统的数据同步方法和系统

Publications (1)

Publication Number Publication Date
CN108123967A true CN108123967A (zh) 2018-06-05

Family

ID=62224454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611061083.0A Pending CN108123967A (zh) 2016-11-28 2016-11-28 一种集群系统的数据同步方法和系统

Country Status (1)

Country Link
CN (1) CN108123967A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165230A (zh) * 2018-09-11 2019-01-08 郑州云海信息技术有限公司 一种分布式集群管理软件数据同步的方法、装置及设备
CN109603149A (zh) * 2018-12-12 2019-04-12 北京像素软件科技股份有限公司 数据同步方法及装置
CN112632189A (zh) * 2020-12-26 2021-04-09 中国农业银行股份有限公司 一种数据同步系统及方法
CN114504828A (zh) * 2022-02-08 2022-05-17 北京趣玩天橙科技有限公司 一种数据回滚实现内存一致性的方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489052A (zh) * 2002-10-11 2004-04-14 鸿富锦精密工业(深圳)有限公司 多节点文件同步系统及方法
CN103188065A (zh) * 2011-12-30 2013-07-03 北京新媒传信科技有限公司 一种业务服务中数据同步的方法和系统
CN103369051A (zh) * 2013-07-22 2013-10-23 中安消技术有限公司 一种数据服务器集群系统及数据同步方法
CN103858122A (zh) * 2011-08-03 2014-06-11 艾玛迪斯简易股份公司 保持客户端/服务器系统内的分布式复制内容的高度一致性的方法和系统
JP2014222451A (ja) * 2013-05-14 2014-11-27 株式会社東芝 データベース管理システムおよびその書き込み方式管理方法
CN105187464A (zh) * 2014-06-19 2015-12-23 中兴通讯股份有限公司 一种分布式存储系统中的数据同步方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489052A (zh) * 2002-10-11 2004-04-14 鸿富锦精密工业(深圳)有限公司 多节点文件同步系统及方法
CN103858122A (zh) * 2011-08-03 2014-06-11 艾玛迪斯简易股份公司 保持客户端/服务器系统内的分布式复制内容的高度一致性的方法和系统
CN103188065A (zh) * 2011-12-30 2013-07-03 北京新媒传信科技有限公司 一种业务服务中数据同步的方法和系统
JP2014222451A (ja) * 2013-05-14 2014-11-27 株式会社東芝 データベース管理システムおよびその書き込み方式管理方法
CN103369051A (zh) * 2013-07-22 2013-10-23 中安消技术有限公司 一种数据服务器集群系统及数据同步方法
CN105187464A (zh) * 2014-06-19 2015-12-23 中兴通讯股份有限公司 一种分布式存储系统中的数据同步方法、装置及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165230A (zh) * 2018-09-11 2019-01-08 郑州云海信息技术有限公司 一种分布式集群管理软件数据同步的方法、装置及设备
CN109603149A (zh) * 2018-12-12 2019-04-12 北京像素软件科技股份有限公司 数据同步方法及装置
CN112632189A (zh) * 2020-12-26 2021-04-09 中国农业银行股份有限公司 一种数据同步系统及方法
CN114504828A (zh) * 2022-02-08 2022-05-17 北京趣玩天橙科技有限公司 一种数据回滚实现内存一致性的方法及系统
CN114504828B (zh) * 2022-02-08 2023-04-28 北京趣玩天橙科技有限公司 一种数据回滚实现内存一致性的方法及系统

Similar Documents

Publication Publication Date Title
CN107733726B (zh) 一种服务请求的处理方法及装置
US10020980B2 (en) Arbitration processing method after cluster brain split, quorum storage apparatus, and system
JP3932994B2 (ja) サーバ引継システムおよびその方法
US7137040B2 (en) Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
CN108123967A (zh) 一种集群系统的数据同步方法和系统
CN106713487A (zh) 数据的同步方法和装置
CN105677673B (zh) 业务处理方法、装置及系统
CN109669762B (zh) 云计算资源管理方法、装置、设备及计算机可读存储介质
CN103095687B (zh) 元数据处理方法及装置
EP3433759A1 (en) Method and apparatus for expanding high-availability server cluster
EP3142011A1 (en) Anomaly recovery method for virtual machine in distributed environment
CN104778102A (zh) 一种主备切换方法及系统
CN111198662B (zh) 一种数据存储方法、装置和计算机可读存储介质
CN108696581A (zh) 分布式信息的缓存方法、装置、计算机设备以及存储介质
US11102284B2 (en) Service processing methods and systems based on a consortium blockchain network
CN113366802A (zh) 在kubernetes系统中运行的状态控制器及其操作方法
US11223522B1 (en) Context-based intelligent re-initiation of microservices
CN108199962B (zh) 地址迁移方法、装置、网络设备及可读存储介质
US9880970B2 (en) Method for implementing highly available data parallel operations on a computational grid
US20230004465A1 (en) Distributed database system and data disaster backup drilling method
CN111541762A (zh) 数据处理的方法、管理服务器、设备及存储介质
CN109213507A (zh) 一种升级方法及服务器
CN102455951A (zh) 一种虚拟机容错方法和系统
CN115373799A (zh) 一种集群管理的方法、装置及电子设备
CN105515838A (zh) 一种服务配置方法及ha集群系统

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180605