一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法与流程

专利2022-05-10  21



1.本发明涉及网络体系结构技术领域,具体来说是一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法。


背景技术:

2.为提高系统的可靠性,避免因外界的不可抗力导致的系统故障,目前许多系统都采取部署多个数据中心以避免单数据中心的故障。为了减少乃至消除单数据中心故障时集群数据的丢失,易于确保单数据中心故障后不同集群间数据的一致性,许多系统希望将每个集群跨数据中心部署,并实现集群状态在不同数据中心间的强一致性,为此同一集群中在不同数据中心的节点间需要借助某种共识算法进行同步并达成状态的强一致,典型共识算法如raft,paxos等。
3.为保证多个数据中心不同时受到外界的影响,数据中心之间一般需间隔一段不短的距离,这就导致了不同数据中心间,数据同步耗时会受到网络传输速度的影响。在低延迟的场景下,跨数据中心网络传输的耗时占比相对较大,故在系统设计角度,需尽量减少共识过程中数据中心间网络传输的次数。


技术实现要素:

4.本发明的目的在于解决现有技术的不足,提供一种在高可用的多级(大于等于二级)流水线结构的场景下,可减少网络传输次数的通用的共识算法优化方案。
5.为了实现上述目的,设计一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法,每个集群包括若干备用节点,还包括一定序主节点,定序主节点负责接收上游消息;一处理主节点,处理主节点负责将同步完成后的消息提交给应用并产生输出发送给下游;所述定序主节点和处理主节点分属不同数据中心。
6.本发明还具有如下优选的技术方案:进一步的,本发明所述方法具体包括以下步骤:s1.业务集群的定序主节点收到其上游的消息后,将其定序;s2.业务集群的定序主节点将其定序后的结果,通过同步消息转发给集群内所有其他节点;s3.集群中节点收到定序主发送的同步消息后,向处理主节点发送确认消息,包括定序主节点发送同步消息后,也需要向处理主发送确认消息;s4、处理主节点收到定序主节点的同步消息后,等待其他所有节点的确认消息;收齐确认消息后,将消息提交给应用,产生响应并下发。
7.发明的有益效果本发明所提供的一种在跨数据中心集群共识算法中减少数据中心间网络传输次
数的方法的优点在于,和通常raft等共识算法中默认将定序主和执行主合一的思路相比,在多级流水线正确部署的情况下通常优于后者。
附图说明
8.图1示例性示出了本发明中一实施例中集群进行跨站传输的工作流程示意图;图2示例性示出了本发明的实施例中据有双层主备跨站同步时的工作流程示意图;图3示例性示出了采用raft算法进行跨站传输的流程示意图;图4示例性示出了采用rc(交易风控)集群进行的流程示意图。
具体实施方式
9.下面通过实施例和附图对本发明所采用技术方案做进一步的说明。
10.参见图3,以raft算法为例,某一业务集群的主节点收到消息后,同步给了备节点,包括另一个数据中心的备节点;备节点收到主节点的同步消息后,给主节点回复确认;主节点收到所有备节点的确认后,才将消息提交给应用进行业务处理。上述过程中,包括两次跨站传输。
11.为了提高系统的吞吐量,增加扩展性,交易系统往往采用二级及更多层次的流水线架构,如图4所示。rc(交易风控)集群作为风控集群进行前置的控制,校验通过的订单才进入下一个集群mc(交易撮合)集群进行交易撮合。二级流水线可提高系统的扩展性和吞吐量,且可以保护撮合进程,将其与用户的网络隔离,在交易系统中普遍应用。但根据之前所述的主备同步的高可用的场景,每一级流水线都需要进行两次跨数据中心传输,一共需要四次跨数据中心传输。
12.参见图1,将业务集群的定序主位于数据中心1,业务集群的处理主位于数据中心2。集群的工作流程如下:1.业务集群的定序主收到其上游的消息后,将其定序;2.业务集群的定序主将其定序后的结果,通过同步消息转发给集群内所有其他节点;3.集群中节点收到定序主发送的同步消息后,向处理主发送确认消息,包括定序主发送同步消息后,也需要向处理主发送确认消息;4.处理主收到定序主的同步消息后,等待其他所有节点的确认消息;收齐确认消息后,将消息提交给应用,产生响应并下发。
13.采用上述架构的特点在于,在同步消息跨站传输的时候,定序主节点所在站点的消息在较短的时间内收到了同步消息,并随即发送跨站确认消息,可视为同时跨站;处理主节点所在的站点的主机,在同步消息经过一次跨站传输的之后收到,并发送无需跨站的确认消息;故,从定序主收到消息,到处理主消息发出,该消息穿梭到了另一个站点,且只需一次跨站。
14.当有双层主备跨站同步的结构时,相比每个集群跨站两次、共跨站四次的结构,此方案仅需跨站两次,且消息仍在原站点,如图2所示。
15.通过上述方法,可有效减少分布式集群跨数据中心部署时的跨站次数,从原先需
要4次跨站减少为2次,以跨30公里之间数据中心传输为例,可以降低250

300us的时延;若站点间网络传输占时延的绝大部分比例,则可降低接近50%的时延。
16.上述方法可以扩展到多级流水线的情况,比如四级流水线的情况下,原本需要8次,目前需要4次。可以证明,以上分离定序主和执行主的方式,和通常raft等共识算法中默认将定序主和执行主合一的方式相比,在两级流水线的情况下不差于后者,且在多于两级流水线并正确部署的情况下通常优于后者所采用方法。
17.以上所述,仅为此发明的具体实施方式,但本发明的保护范围不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案和新型的构思加于等同替换或改变,都应涵盖在本发明的保护范围之内。


技术特征:
1.一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法,每个集群包括若干备用节点,其特征在于每个集群还包括 一定序主节点,定序主节点负责接收上游消息; 一处理主节点,处理主节点负责将同步完成后的消息提交给应用并产生输出发送给下游; 所述定序主节点和处理主节点分属不同数据中心。2.如权利要求1所述的一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法,其特征在于具体方法如下: s1.业务集群的定序主节点收到其上游的消息后,将其定序; s2.业务集群的定序主节点将其定序后的结果,通过同步消息转发给集群内所有其他节点; s3.集群中节点收到定序主发送的同步消息后,向处理主节点发送确认消息,包括定序主节点发送同步消息后,也需要向处理主发送确认消息; s4、处理主节点收到定序主节点的同步消息后,等待其他所有节点的确认消息;收齐确认消息后,将消息提交给应用,产生响应并下发。

技术总结
本发明涉及网络体系结构技术领域,具体来说是一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法,每个集群包括若干备用节点,还包括一定序主节点,定序主节点负责接收上游消息;一处理主节点,处理主节点负责将同步完成后的消息提交给应用并产生输出发送给下游;所述定序主节点和处理主节点分属不同数据中心。本发明所提供的一种在跨数据中心集群共识算法中减少数据中心间网络传输次数的方法,和通常RAFT等共识算法中默认将定序主和执行主合一的思路相比,在多级流水线正确部署的情况下通常优于后者。确部署的情况下通常优于后者。确部署的情况下通常优于后者。


技术研发人员:朱立 刘凯 林琨 施展
受保护的技术使用者:上交所技术有限责任公司
技术研发日:2021.07.07
技术公布日:2021/10/8
转载请注明原文地址:https://doc.8miu.com/read-1450014.html

最新回复(0)