用于数据同步的多级架构、数据同步方法和故障处理方法与流程

文档序号:12753316阅读:315来源:国知局
用于数据同步的多级架构、数据同步方法和故障处理方法与流程

本发明涉及数据库数据同步技术领域,具体涉及一种用于数据同步的多级架构、数据同步方法和故障处理方法。



背景技术:

视频会议系统一般包括核心数据库和从属数据库,核心数据库主要用于存储核心业务的相关数据,当核心数据库修改后,有些需要同步到从属数据库中。

核心数据库的数据同步到从属数据库的架构可以是待同步数据从核心数据库对应的服务器传递到其中一个从属数据库对应的服务器然后依次传递给其他从属数据库对应的服务器。但是这种数据同步架构与对应的数据同步方法,一旦其中一个传递链发生故障,将会导致待同步数据无法下传,从而导致下级从属数据库无法完成数据同步。

因此,目前亟需一个能够可靠完成核心数据库修改数据向其他从属数据库同步的架构以及对应的数据同步方法。



技术实现要素:

因此,本发明要解决的技术问题在于现有用于将核心数据库的数据向其他数据库同步的架构和方法可靠性低。

为此,本发明实施例提供了如下技术方案:

一种用于数据同步的多级架构,包括顶级域和多个依次连接的从级域,从级域中的第一级从级域与顶级域之间存在有数据下发链路,相邻两个从级域之间也存在有数据下发链路,待同步数据从顶级域向第一级从级域下发,第一级从级域再将待同步数据下发给第二级从级域并逐级下发;

每个从级域包括多个服务器,其中一个为主服务器,其他为从服务器,第一级从级域与顶级域之间的数据下发链路是设置在顶级域与第一级从级域的主服务器之间,其他相邻两个从级域之间的数据下发链路也是设置该两个从级域的主服务器之间,每个从级域的主服务器与各从服务器之间分别设有数据同步链路,主服务器用于接收待同步数据并在其完成数据同步后将待同步数据转发给该从级域内的各个从服务器,从服务器接收待同步数据并完成数据同步。

一种基于上述多级架构的数据同步方法,包括如下步骤:

顶级域将待同步数据下发到其中一个从级域;

该从级域的主服务器接收待同步数据并完成同步;

主服务器将待同步数据转发给从服务器以完成从服务器的数据同步。

可选地,上述数据同步方法还包括如下步骤:

主服务器将待同步数据下发给下一个从级域。

可选地,上述顶级域将待同步数据下发到其中一个从级域的步骤包括:

顶级域获取待同步数据;

顶级域将待同步数据发布至顶级域的下发消息队列中;

从级域通过订阅顶级域的下发消息队列中的消息获取待同步数据。

可选地,上述从级域的主服务器接收待同步数据并完成同步的步骤之后,还包括:

主服务器向该从级域的通知消息队列发送数据同步完成消息。

可选地,上述主服务器将待同步数据转发给从服务器以完成从服务器的数据同步的步骤包括:

主服务器向该从级域的同步消息队列发送待同步数据;

从服务器通过订阅该从级域的同步消息队列获取待同步数据并完成数据同步。

可选地,上述从服务器通过订阅该从级域的同步消息队列获取待同步数据并完成数据同步的步骤之后,还包括:

从服务器向该从级域的同步消息队列发送数据同步完成消息;

主服务器通过该从级域的同步消息队列获取从服务器发送的数据同步完成消息;

主服务器在获取了该从级域各个从服务器的数据同步完成消息后,将待同步数据发送到该从级域的下发消息队列中,以供下一个从级域订阅获取待同步数据。

可选地,每个从级域均对应一个唯一标识符,与待同步数据同时下发的还有待同步从级域标识符列表;上述顶级域将待同步数据和待同步从级域标识符列表下发到其中一个从级域之后,还包括如下步骤:

从级域的主服务器判断该从级域对应的标识符是否存在于其接收到的待同步从级域标识符列表中;

如果否,则从级域的主服务器将其接收到的待同步数据和待同步从级域标识符列表下发给下一个从级域。

可选地,上述方法还包括以下步骤:

如果从级域的主服务器判定该从级域对应的标识符存在于其接收到的待同步从级域标识符列表中,则在该从级域完成数据同步后,删除待同步从级域标识符列表中该从级域对应的标识符;

主服务器判断修改后的待同步从级域标识符列表是否为空;

如果否,则将修改后的待同步从级域标识符列表与待同步数据一起下发给下一个从级域。

可选地,上述在顶级域将待同步数据下发到其中一个从级域的步骤之前,还包括:

顶级域获取待同步数据;

顶级域为待同步数据分配版本号,版本号唯一且递增。

可选地,上述从级域的主服务器接收到待同步数据并完成同步的步骤包括:

获取上一次完成同步的数据版本号和当前待同步数据版本号;

判断当前待同步数据的版本号是否是上一次同步的数据版本号的下一个;

如果否,则判断当前待同步数据的版本号是否大于上一次同步的数据版本号;

如果是,则主服务器请求顶级域重新下发上一次同步的数据版本号的下一个版本号对应的待同步数据,并完成同步;

完成当前待同步数据的同步。

一种基于上述多级架构和数据同步方法的故障处理方法,包括以下步骤:

当其中一个从级域的主服务器出现故障,选定该从级域内的一个从服务器作为新主服务器;

增加新主服务器与上一个从级域或者顶级域之间的数据下发链路,以使得上一个从级域或者顶级域能够直接将待同步数据下发到新主服务器;

删除从级域的原主服务器与下一个从级域之间的数据下发链路,相应增加新主服务器与下一个从级域之间的数据下发链路;

将原主服务器修改为从服务器;

删除原主服务器与各个从服务器之间的数据同步链路,相应增加新主服务器与各个从服务器之间的数据同步链路。

本发明技术方案,具有如下优点:

本发明实施例提供的用于数据同步的多级架构、数据同步方法以及故障处理方法,每级从级域包括多个服务器,其中一个为主服务器,其他为从服务器。主服务器用于接收上级从级域或顶级域下发的待同步数据并在其完成数据同步后将待同步数据转发给该从级域内的各个从服务器,以使得从服务器完成数据同步。本发明实施例中,主服务器不是固定不变的,每个从服务器都可以配置为主服务器,从而代替原主服务器来完成数据同步过程。因此,即使在数据同步过程中出现故障导致数据无法向下级下发或者主服务器无法将数据同步到同级的从服务器上时,就可以通过更换主服务器的方式来解决数据无法同步的问题,而不是需要找出具体的故障原因并消除故障后才能继续进行数据同步。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1中用于数据同步的多级架构结构示意图;

图2为本发明实施例2中数据同步方法的流程图;

图3为本发明实施例2和3中数据同步方法的过程示意图;

图4为本发明实施例4中从级域的主服务器接收到待同步数据并完成同步过程的流程图;

图5为本发明实施例5中故障处理方法的示意图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例1

如图1所示,本实施例提供了一种用于数据同步的多级架构,包括顶级域和多个依次连接的从级域,待同步数据从顶级域向第一级从级域下发,第一级从级域再将待同步数据下发给第二级从级域并逐级下发。具体地,第一级从级域与顶级域之间存在有数据下发链路,相邻两个从级域之间也存在有数据下发链路。

每个从级域包括多个服务器,其中一个为主服务器,其他为从服务器,主服务器用于接收待同步数据并在其完成数据同步后将待同步数据转发给该从级域内的各个从服务器,从服务器接收待同步数据并完成数据同步。具体地,第一级从级域与顶级域之间的数据下发链路是设置在顶级域与第一级从级域的主服务器之间,其他相邻两个从级域之间的数据下发链路也是设置该两个从级域的主服务器之间,每个从级域的主服务器与各从服务器之间也分别设有数据同步链路。

本实施例提供的用于数据同步的多级架构,每个从级域包括多个服务器,其中一个为主服务器,其他为从服务器。主服务器用于接收上一级从级域或顶级域下发的待同步数据并在其完成数据同步后将待同步数据转发给该从级域内的各个从服务器,以使得从服务器完成数据同步。本实施例中,主服务器不是固定不变的,每个从服务器都可以配置为主服务器,从而代替原主服务器来完成数据同步过程。因此,即使在数据同步过程中出现故障导致数据无法向下级下发或者主服务器无法将数据同步到同级的从服务器上时,就可以通过更换主服务器的方式来解决数据无法同步的问题,而不是需要找出具体的故障原因并消除故障后才能继续进行数据同步。

实施例2

本实施例提供了一种数据同步方法,该数据同步方法基于上述实施例1所述的多级架构,如图2和3所示,包括如下步骤:

S1:顶级域将待同步数据下发到其中一个从级域,该待同步数据可以是由顶级域产生的;

S2:该从级域的主服务器接收待同步数据并完成同步;

S3:主服务器将待同步数据转发给从服务器以完成从服务器的数据同步。

本实施例提供的数据同步方法,该方法是基于上述实施例1提供的多级架构,因此,相应地该方法能够可靠地完成顶级域待同步数据向下级从级域的同步。

具体地,该数据同步方法还包括如下步骤:

主服务器将待同步数据下发给下一个从级域,以实现待同步数据的逐级传递。

作为具体的实施方式,上述步骤S1,即顶级域将待同步数据下发到其中一个从级域的步骤包括:

首先,顶级域获取待同步数据,该待同步数据需要同步到下级从级域中;

然后,顶级域将待同步数据发布至顶级域的下发消息队列中;

最后,从级域通过订阅顶级域的下发消息队列中的消息获取待同步数据,具体是由从级域中的主服务器来订阅顶级域中核心服务器的下发消息队列中的消息以获取待同步数据。

作为具体的实施方式,上述步骤S2,即从级域的主服务器接收待同步数据并完成同步的步骤之后,还包括:

主服务器向该从级域的通知消息队列发送数据同步完成消息。

具体地,上述步骤S3,即主服务器将待同步数据转发给从服务器以完成从服务器的数据同步的步骤包括:

首先,主服务器向该从级域的同步消息队列发送待同步数据;

然后,从服务器通过订阅该从级域的同步消息队列获取待同步数据并完成数据同步。

作为进一步具体的实施方式,即从服务器通过订阅该从级域的同步消息队列获取待同步数据并完成数据同步的步骤之后,还包括:

首先,从服务器向该从级域的同步消息队列发送数据同步完成消息;

然后,主服务器通过该从级域的同步消息队列获取从服务器发送的数据同步完成消息;

最后,主服务器在获取了该从级域中各个从服务器的数据同步完成消息后,将待同步数据发送到该从级域的下发消息队列中,以供下一个从级域订阅获取待同步数据。

作为优选的实施方式,每个从级域均对应一个唯一标识符,与待同步数据同时下发的还有待同步从级域标识符列表,该待同步从级域标识符列表中记录的是需要进行数据同步的从级域;顶级域将待同步数据和待同步从级域标识符列表下发到其中一个从级域之后,还包括如下步骤:

从级域的主服务器判断该从级域对应的标识符是否存在于其接收到的待同步从级域标识符列表中;

如果否,则该从级域的主服务器将其接收到的待同步数据和待同步从级域标识符列表下发给下一个从级域。

具体地,该数据同步方法还包括以下步骤:

如果从级域的主服务器判定该从级域对应的标识符存在于其接收到的待同步从级域标识符列表中,则该从级域在按照上述步骤完成数据同步后,删除待同步从级域标识符列表中该从级域对应的标识符;

主服务器判断修改后的待同步从级域标识符列表是否为空;

如果否,则将修改后的待同步从级域标识符列表与待同步数据一起下发给下一个从级域。

如果修改后的待同步从级域标识符列表是空的,就不处理。

实施例3

如图3所示,本实施例提供了一种数据同步方法,该方法同样是基于上述实施例1提供的多级架构,本实施例采用消息队列来实现同步消息的存储、各级从级域通过订阅上级从级域或顶级域消息队列中存储的消息来实现数据的逐级下发与同步,各级从级域内的从服务器也是通过订阅本级消息队列中存储的消息来实现数据同步的。为方便描述,本实施例中每级从级域仅设置三个服务器,其中一个为主服务器、其他为从服务器,该数据同步方法具体包括以下步骤:

1)顶级域业务修改数据库后,如果需要通知下级从级域,则生成一条携带待同步数据和待同步从级域标识符列表的消息,投递到顶级域的通知消息队列中。其中,待同步从级域标识符列表中指定了需要进行同步的从级域ID(即从级域对应的唯一标识符)。

2)顶级域Modb-core通过订阅获取到顶级域的通知消息队列中存储的消息。之后,先查找待同步从级域标识符列表中是否存在有自己的唯一标识符。如果有,则在本地数据库完成数据同步,并从待同步从级域标识符列表中删除自身的唯一标识符。删除自身的唯一标识符后,顶级域Modb-core需要判断修改后的待同步从级域标识符列表是否是空的,如果不为空,则将修改后的消息(包括待同步数据和修改后的待同步从级域标识符列表)发布至顶级域的下发消息队列中,等待下级从级域处理。本实施例中,由于是顶级域数据库首先被修改,所以只用根据需要在下级从级域中进行数据同步而不用在顶级域进行数据同步,因此待同步从级域标识符列表中是不包括顶级域自己的唯一标识符的。

3)第一级从级域A的主服务器A1通过订阅从顶级域的下发消息队列得到包括待同步数据和修改后的待同步从级域标识符列表的同步消息,根据待同步从级域标识符列表判断是否需要在本地执行同步过程(即是否存在第一级从级域的唯一标识符),如果不需要,直接下发至第二级从级域B。否则先在本地数据库执行数据同步,成功后向本级从级域的通知消息队列发送消息通知业务数据产生了变更,即完成了数据同步。

4)第一级从级域A的主服务器A1向本级从级域的同步消息队列发送需要进行数据同步的消息(该消息中包括待同步数据),以通知本级从级域A的从服务器A2、从服务器A3进行数据同步。

5)从服务器A2和A3分别通过订阅本级从级域的同步消息队列获取同步消息,同步完成后向本级从级域的同步消息队列发送同步完成消息,从而主服务器A1可以通过本级从级域的同步消息队列来判断从服务器A2和A3是否完成了数据同步。

6)主服务器A1在确认本级所有服务器(包括从服务器A2和A3、主服务器A1自身,主服务器A1自身是否完成了数据同步是通过本级从级域的通知消息队列来确认的)均同步成功后,删除待同步从级域标识符列表中的本级从级域ID,然后判断待同步从级域标识符列表是否为空,如果为空不处理,如果不为空将修改后的消息(包括待同步数据和修改后的待同步从级域标识符列表)发送至本级从级域的下发消息队列中,等待下级从级域处理。

第二级从级域B的同步过程同上述第3-6步。其他的下级从级域也依次执行上述第3-6步。

实施例4

由于每次顶级域业务修改数据库后,各级需要同步的从级域都要进行一次数据同步,因此,随着同步次数的增加,有些从级域可能会出现一次或多次未能完成同步过程的情况,而如果不采取有效措施来避免这种漏同步现象,将会导致数据不一致,甚至数据混乱。

为解决上述问题,本实施例提供了一种数据同步方法,该方法也是基于上述实施例1提供的多级架构,该数据同步方法与上述实施例2和3的区别在于:增加了版本号控制。

本实施例提供的数据同步方法中,在顶级域将待同步数据下发到其中一个从级域的步骤之前,还包括:

首先,顶级域获取待同步数据;

然后,顶级域为待同步数据分配版本号,该版本号唯一且递增。该版本号可以存储于与该待同步数据对应的待同步从级域标识符列表中。

相应地,如图4所示,从级域的主服务器接收到待同步数据并完成同步的步骤包括:

S41:获取上一次完成同步的数据版本号和当前待同步数据版本号;

S42:判断当前待同步数据的版本号是否是上一次同步的数据版本号的下一个;

S43:如果否,则判断当前待同步数据的版本号是否大于上一次同步的数据版本号;

S44:如果是,则主服务器请求顶级域重新下发上一次同步的数据版本号的下一个版本号对应的待同步数据,并完成同步;

S45:最后,完成当前待同步数据的同步。

如果当前待同步数据的版本号是上一次同步的数据版本号的下一个,则直接完成当前待同步数据的同步。

而如果,当前待同步数据的版本号小于等于上一次同步的数据版本号,则不作处理,以避免重复执行同步过程。

本实施例提供的数据同步方法,通过以上步骤可以避免部分从级域的服务器因同步消息丢失或者处理异常等原因从而导致未能成功同步的情况出现,进而保证数据一致性和完整性。

对于在某些次数据同步过程中不需要进行数据同步的从级域,作为一个可选的实施方式,在其主服务器接收到待同步从级域标识符列表后根据其中的待同步数据版本号对应修改已完成数据同步的版本号,以在下一次数据同步过程中,根据该已完成数据同步的版本号确定该从级域是否出现数据漏同步的情况。

实施例5

如图5所示,本实施例提供了一种基于上述实施例1-3提供的故障处理方法,包括以下步骤:

1)当其中一个从级域的主服务器出现故障,选定该从级域内的一个从服务器作为新主服务器。例如,第一级从级域A中主服务器A1出现故障,则选择从服务器A2作为新主服务器。

2)增加新主服务器与上一级从级域或者顶级域之间的数据下发链路L4,以使得上一级从级域或者顶级域能够直接将待同步数据下发到新主服务器。新主服务器A2通过订阅顶级域的下发消息队列得到同步消息。

3)删除该从级域的原主服务器与下一级从级域之间的数据下发链路L8,相应增加新主服务器与下一级从级域之间的数据下发链路L9和L5,即在新主服务器A2获取同步消息后(且确认本级所有服务器均同步完成后),由新主服务器A2将同步消息发送至本级从级域的下发消息队列中。

4)将原主服务器修改为从服务器;

5)删除原主服务器与各个从服务器之间的数据同步链路L3、L6,相应增加新主服务器与各个从服务器之间的数据同步链路L7和L5′以及L10,即在新主服务器A2获取同步消息后,由新主服务器A2将需要进行数据同步的消息(该消息中包括待同步数据)发送给本级从级域的同步消息队列中,以通知本级从级域A的从服务器A3、从服务器A1进行数据同步。

作为本实施例的优选实施方式,首先修改第二级从级域B的主服务器B1的配置,然后修改第一级从级域A的服务器A1的配置,再然后修改第一级从级域A的服务器A3的配置,最后修改第一级从级域A的服务器A2的配置。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1