容灾网络组网的方法、装置及容灾网络的制作方法

文档序号:7770871阅读:293来源:国知局
容灾网络组网的方法、装置及容灾网络的制作方法
【专利摘要】本发明公开了一种容灾网络组网的方法、装置及容灾网络,涉及互联网【技术领域】,能够解决主节点切换过程复杂且效率低下的问题。本发明涉及的方法包括:定期接收其他节点发送的心跳报文;任意一个节点接收客户端发送的写操作指令;根据心跳报文中用户数据标识值的新旧在所有节点中选择一个主节点;将所述写操作指令转发给所述主节点进行写操作处理。本发明主要应用于容灾网络运维的过程中。
【专利说明】容灾网络组网的方法、装置及容灾网络

【技术领域】
[0001] 本发明涉及互联网【技术领域】,尤其涉及一种容灾网络组网的方法、装置及容灾网 络。

【背景技术】
[0002] 随着社交网络(SocialNetworkingServices,简称SNS)的迅猛发展,参与互联网 活动的用户规模不断扩大。通常客户端通过写操作将数据上传至网络侧,通过读操作从网 络侧获取数据。例如,某用户账号发布了一张照片,该用户客户端通过写操作将该照片上传 至网络侧节点(例如网络侧服务器),另一好友账户通过读操作从网络侧节点访问该照片数 据,对照片进行浏览。
[0003] 容灾网络是一种数据冗余网络,通过将相同用户数据备份到多个节点上的方式, 消除某个节点发生故障对用户操作带来的影响。通常,容灾网络包括一个主节点和多个副 节点,所有节点都负责备份同一份数据,主节点可以处理写操作和读操作,而副节点只能够 处理读操作。当主节点通过写操作处理获得一条用户数据后,会将该用户数据同步给其他 所有副节点,以便保持各个节点之间数据的强一致性,使得客户端可以通过主节点或任意 一个副节点获取到用户数据。例如,将部署在北京的服务器1作为主节点,将部署在天津的 服务器2和部署在河北的服务器3作为副节点。服务器1作为主节点可以将京津冀用户通 过写操作写入的用户数据同步给服务器2和服务器3。当北京地区因发生地质灾害导致服 务器1瘫痪时,京津冀三地的客户端仍可以从服务器2和服务器3中访问用户数据。
[0004]通过以上的描述可以看出,容灾网络具有以下几种特征:1)网络由多个节点组成, 其中包含一个主节点和多个副节点;2)主节点除能够处理客户端的读操作之外还可以处理 客户端的写操作,而副节点只能处理读操作;3)由于副节点无法处理写操作,即无法获取客 户端的用户数据,因此主节点需要将获取的用户数据同步给各个副节点,以保证当主节点 发生故障时客户端可以从副节点获取用户数据。
[0005]基于以上特征,当容灾网络中的主节点发生故障时,虽然客户端可以通过副节点 进行读操作,但是无法通过副节点进行写操作,因此为消除无法进行写操作对用户带来的 影响,需要从副节点中重新选择主节点,并对原主节点进行故障排除和数据恢复。对于重新 选择主节点,目前的实现方式主要有两种:1)网络运维人员手动选择新的主节点:网络运 维人员根据每个副节点中用户数据的新旧程度选择出存储了最新用户数据的副节点作为 新的主节点,并对该副节点进行手动配置;2)通过投票算法选择新的主节点:每个副节点 根据各个副节点中用户数据的新旧投票选举一个副节点作为新的主节点,中心服务器或者 仲裁者节点(副节点中的某一个节点)收集各个副节点发送的投票,根据对投票的统计结果 确定新的主节点。
[0006]在实现上述选择主节点的过程中,发明人发现现有技术中至少存在如下问题:对 于方式1)而言,需要人工选取主节点,由于容灾网络涉及的节点数量和用户数据量都非常 庞大,因此人工选择的方式效率太低且容易出错。对于方式2)而言,如果副节点的得票数 未达到选举条件(例如得票数超过半数),则中心服务器或者仲裁者节点还需重新组织新一 轮的投票,直到选举出符合条件的主节点为止。这种选举方式往往需要通过多轮投票才能 够选择出新的主节点,实现过程过于复杂并且节点之间的信令开销过大。另外,当由于存在 网络故障等原因导致节点之间通信中断时,中心服务器或者仲裁者节点会漏接部分甚至全 部副节点的投票,基于不完整投票的节点选举会选举出错误的主节点,选举正确性不高。


【发明内容】

[0007] 本发明实施例提供一种容灾网络组网的方法、装置及容灾网络,能够解决主节点 切换过程复杂且效率低下的问题。
[0008] -方面,本发明实施例提供了一种容灾网络组网的方法,包括:
[0009] 定期接收其他节点发送的心跳报文,所述心跳报文中携带有本地最新的用户数据 标识值;
[0010] 任意一个节点接收客户端发送的写操作指令;
[0011] 根据用户数据标识值的新旧在所有节点中选择一个主节点;
[0012] 将所述写操作指令转发给所述主节点进行写操作处理。
[0013] 另一方面,本发明实施例还提供了一种容灾网络组网的装置,包括:
[0014] 报文收发单元,用于定期接收其他节点发送的心跳报文,所述心跳报文中携带有 本地最新的用户数据标识值;
[0015] 指令收发单元,用于接收客户端发送的写操作指令;
[0016] 处理单元,用于根据所述报文收发单元接收的用户数据标识值的新旧在所有节点 中选择一个主节点;
[0017] 所述指令收发单元还用于将接收的所述写操作指令转发给所述处理单元选择的 所述主节点进行写操作处理。
[0018] 再一方面,本发明实施例还提供了一种容灾网络,所述网络包括至少两个节点;
[0019] 每个节点定期接收其他节点发送的心跳报文,所述心跳报文中携带有本地最新的 用户数据标识值;
[0020] 当客户端上报写操作指令时,任意一个节点接收该写操作指令,接收所述写操作 指令的节点根据其他节点发送的心跳报文中用户数据标识值的新旧,在所有节点中选择一 个主节点,并将所述写操作指令转发给所述主节点进行写操作处理。
[0021] 本发明实施例提供的容灾网络组网的方法、装置及容灾网络,每个节点能够定期 接收其他节点发送的携带有本地最新的用户数据标识值的心跳报文,当客户端上报写操作 指令时,随机由任意一个节点接收该写操作指令,对于接收写操作指令的节点,根据用户数 据标识值的新旧在包括节点自身在内的所有节点中选择一个主节点,最后将该写操作指令 转发给主节点进行写操作处理。与现有技术中将某个节点固定作为主节点相比,可以在客 户端上报写操作指令时,以每个节点中的最新用户数据标识值为依据,选择出一个主节点 进行写操作处理,当主节点发生故障无法写入用户数据时,由于与其他节点相比该主节的 最新用户数据标识值已经过时,因此网络内部可以自动将其他节点切换为主节点,由此实 现主节点的自动切换。与人工切换主节点相比,可以极大提高节点切换的效率和准确率,而 与投票算法切换主节点相比,则能够大大简化节点切换的过程,减少网络内部各个节点之 间的信令开销。与此同时,本发明实施例提供的容灾网络组网的方法、装置及容灾网络,还 能够仅基于网络内部已有的节点实现主节点切换,无需中心服务器或仲裁者节点等上层逻 辑控制设备,因此与现有技术相比还可以降低网络运维的硬件成本。

【专利附图】

【附图说明】
[0022] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0023] 图1为本发明实施例所基于的容灾网络的架构示意图;
[0024] 图2为本发明实施例中容灾网络组网的方法流程图;
[0025] 图3为本发明实施例中另一个容灾网络组网的方法流程图;
[0026] 图4为本发明实施例中对数据同步状态表表项进行遍历的方法流程图;
[0027] 图5为本发明实施例中容灾网络组网的装置的结构示意图;
[0028] 图6为本发明实施例中另一个容灾网络组网的装置的结构示意图;
[0029] 图7为本发明实施例中再一个容灾网络组网的装置的结构示意图;
[0030] 图8为本发明实施例中容灾网络的网络示意图。

【具体实施方式】
[0031] 下面将结合本实施例中的附图,对本实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的 实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都 属于本发明保护的范围。
[0032] 为了更好的对本实施例进行说明,首先对本实施例基于的容灾网络架构进行简要 介绍。容灾网络由多个部署在不同地域的同质节点组成,这些节点被逻辑划分为主节点和 副节点,主节点能够对读写操作进行处理,副节点只能处理读操作。如图1所示,节点1至 节点4中以节点1作为主节点,节点2至节点4作为副节点,各个节点两两之间可以进行通 信。下面基于图1所示的容灾网络,对本实施例进行说明。
[0033] 本实施例提供了一种容灾网络组网的方法,如图2所示,该方法包括:
[0034] 201、定期接收其他节点发送的心跳报文。
[0035] 每一个节点定期向网络中其他所有节点发送心跳报文。该心跳报文中携带有本 地最新的用户数据标识值,该用户数据标识值用于对节点写入用户数据的先后次序进行标 识。通常,一条用户数据对应一个用户数据标识值,节点在作为主节点写入一条用户数据, 或者作为副节点接收到一条主节点同步的用户数据后,为新获取的用户数据分配用户数据 标识值。事例性的,节点中用户数据与用户数据标识值之间的关联关系如下表所示,其中最 大的用户数据标识值对应的用户数据为节点最新获取的用户数据。
[0036]

【权利要求】
1. 一种容灾网络组网的方法,其特征在于,包括: 定期接收其他节点发送的也跳报文,所述也跳报文中携带有本地最新的用户数据标识 值; 任意一个节点接收客户端发送的写操作指令; 根据用户数据标识值的新旧在所有节点中选择一个主节点; 将所述写操作指令转发给所述主节点进行写操作处理。
2. 根据权利要求1所述的方法,其特征在于,所述定期接收其他节点发送的也跳报文 的步骤,包括: 按照预设周期,接收其他节点发送的携带有本地最大序列号(Sequence)的也跳报文, 所述序列号用于对节点接收用户数据的顺序进行标识,序列号越大其对应接收的用户数据 越新; 根据包括节点自身在内的本地最大序列号在内的所有节点的本地最大序列号,构建数 据同步状态表。
3. 根据权利要求2所述的方法,其特征在于,所述根据用户数据标识值的新旧在所有 节点中选择一个主节点的步骤,包括: 对所述数据同步状态表中的本地最大序列号进行遍历,选择出全网最大序列号; 将所述全网最大序列号对应的节点确定为所述主节点。
4. 根据权利要求3所述的方法,其特征在于,在所述将所述写操作指令转发给所述主 节点进行写操作处理的步骤之前,所述方法进一步包括: 判断所述写操作指令的转发次数是否超过预设转发次数,所述预设转发次数为大于或 等于0的整数; 若所述写操作指令的转发次数超过所述预设转发次数,则取消对所述写操作指令的转 发,并向客户端提示写操作失败。
5. 根据权利要求4所述的方法,其特征在于,在所述将所述写操作指令转发给所述主 节点进行写操作处理的步骤之后,所述方法进一步包括: 在下一次也跳报文中,接收所述主节点发送的本地最大序列号,所述本地最大序列号 为所述写操作处理对应的序列号; 根据所述主节点发送的本地最大序列号更新所述数据同步状态表。
6. 根据权利要求5所述的方法,其特征在于,当节点自身的本地最大序列号为全网最 大序列号时,所述将所述写操作指令转发给所述主节点进行写操作处理的步骤,包括: 对所述写操作指令进行写操作处理; 将所述写操作处理对应的序列号更新为所述本地最大序列号; 在下一次也跳报文中,将更新后的本地最大序列号发送给其他节点。
7. 根据权利要求6所述的方法,其特征在于,所述定期接收其他节点发送的也跳报文 的步骤,包括: 若在预设时长或预设接收次数内未接收到某个节点发送的也跳报文,则在所述数据同 步状态表中将该节点对应的本地最大序列号修改为0。
8. -种容灾网络组网的装置,其特征在于,包括: 报文收发单元,用于定期接收其他节点发送的也跳报文,所述也跳报文中携带有本地 最新的用户数据标识值; 指令收发单元,用于接收客户端发送的写操作指令; 处理单元,用于根据所述报文收发单元接收的用户数据标识值的新旧在所有节点中选 择一个主节点; 所述指令收发单元还用于将接收的所述写操作指令转发给所述处理单元选择的所述 主节点进行写操作处理。
9. 根据权利要求8所述的装置,其特征在于,所述装置还包括;数据维护单元; 所述报文收发单元用于按照预设周期,接收其他节点发送的携带有本地最大序列号 (Sequence)的也跳报文,所述序列号用于对节点接收用户数据的顺序进行标识,序列号越 大其对应接收的用户数据越新; 所述数据维护单元,用于根据包括节点自身在内的本地最大序列号在内的所有节点的 本地最大序列号,构建数据同步状态表。
10. 根据权利要求8所述的装置,其特征在于,所述处理单元,包括: 遍历子单元,用于对所述数据同步状态表中的本地最大序列号进行遍历,选择出全网 最大序列号; 确定子单元,用于将所述遍历子单元选择的所述全网最大序列号对应的节点确定为所 述主节点。
11. 根据权利要求10所述的装置,其特征在于,所述装置还包括;判断单元; 所述判断单元,用于在所述指令收发单元将所述写操作指令转发给所述主节点进行写 操作处理之前,判断所述写操作指令的转发次数是否超过预设转发次数,所述预设转发次 数为大于或等于0的整数; 所述指令收发单元还用于当所述判断单元判断所述写操作指令的转发次数超过所述 预设转发次数时,取消对所述写操作指令的转发,并向客户端提示写操作失败。
12. 根据权利要求11所述的装置,其特征在于,所述报文收发单元还用于在所述指令 收发单元将所述写操作指令转发给所述主节点进行写操作处理之后,在下一次也跳报文 中,接收所述主节点发送的本地最大序列号,所述本地最大序列号为所述写操作处理对应 的序列号; 所述数据维护单元还用于根据所述报文收发单元接收的所述主节点发送的本地最大 序列号更新所述数据同步状态表。
13. 根据权利要求12所述的装置,其特征在于,所述处理单元还包括:写操作子单元; 所述写操作子单元,用于当所述遍历子单元将节点自身的本地最大序列号选择为全网 最大序列号时,对所述写操作指令进行写操作处理; 所述数据维护单元还用于将所述写操作子单元写操作处理对应的序列号更新为所述 本地最大序列号; 所述报文收发单元还用于在下一次也跳报文中,将所述数据维护单元更新后的本地最 大序列号发送给其他节点。
14. 根据权利要求13所述的装置,其特征在于,所述数据维护单元还用于当所述报文 收发单元在预设时长或预设接收次数内未接收到某个节点发送的也跳报文时,在所述数据 同步状态表中将该节点对应的本地最大序列号修改为0。
15. -种容灾网络,其特征在于,所述网络包括至少两个节点; 每个节点定期接收其他节点发送的也跳报文,所述也跳报文中携带有本地最新的用户 数据标识值; 当客户端上报写操作指令时,任意一个节点接收该写操作指令,接收所述写操作指令 的节点根据其他节点发送的也跳报文中用户数据标识值的新旧,在所有节点中选择一个主 节点,并将所述写操作指令转发给所述主节点进行写操作处理。
【文档编号】H04L12/46GK104468163SQ201310426683
【公开日】2015年3月25日 申请日期:2013年9月18日 优先权日:2013年9月18日
【发明者】周智昊, 许诗 申请人:腾讯科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1