CN102938705A - 一种高可用多机备份路由表管理与切换方法 - Google Patents
一种高可用多机备份路由表管理与切换方法 Download PDFInfo
- Publication number
- CN102938705A CN102938705A CN2012103624934A CN201210362493A CN102938705A CN 102938705 A CN102938705 A CN 102938705A CN 2012103624934 A CN2012103624934 A CN 2012103624934A CN 201210362493 A CN201210362493 A CN 201210362493A CN 102938705 A CN102938705 A CN 102938705A
- Authority
- CN
- China
- Prior art keywords
- main frame
- routing table
- node
- product set
- main
- 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.)
- Granted
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及证券电子系统数据备份控制技术领域,具体为一种高可用多机备份路由表管理与切换方法,其特征在于集群计算机系统由若干交易主机组成,交易主机由中台接入网关接收处理订单,再通过中台接入网关将处理结果返回给前台接入节点,各台主机之间通过网络进行通信,通过共享存储设备对文件系统进行读写访问,通过分布锁服务协调主机间的一致性数据和进行主机间同步,通过集群成员管理服务得到节点失效和节点加入通知。本发明适用于集群系统,添加了冷备机及提供可灵活定义主机逻辑互备关系的订单路由表,实现系统的超高可用性、各项并发处理、吞吐量、延迟响应、切换时间指标仍保持与原先一主一备模式接近的水平,成本较低。
Description
[技术领域]
本发明涉及证券电子系统数据备份控制技术领域,具体的说是一种高可用多机备份路由表分布计算、多机协调与中央分发等管理与切换方法。
[背景技术]
证券交易所为证券市场提供公共的交易平台,其中证券核心交易系统作为证券产品实时竞价撮合的平台系统,也被称为竞价撮合平台,属于关键业务系统。
竞价撮合平台由后台负责计算处理的多主机集群、中台接入网关和前台接入节点构成,由于竞价撮合平台需要处理来自全国百余家证券公司、数千家营业部、九千万投资者、平均每秒数千笔、峰值达每秒十万笔的订单流,并在百毫秒级的时间范围内快速响应,且其性能安全可靠直接关系到国内金融市场的繁荣稳定,因此竞价撮合平台需要保证稳定、高可用性。
由于硬件、网络、软件、人为误操作等易造成单点故障,若无法在短时间内完成自动检测则将延缓系统正常营运;且主机硬件系统故障占据了总体故障发生的较大比例,因此目前为进一步提高竞价撮合平台可用性主要从两方面着手:
首先,完善自动检测系统,目标为即使出现硬件、网络、软件、人为误操作造成的单点故障,可以在数十秒内完成硬件、网络、系统故障的自动检测和切换,令对证券市场的影响将至最低;
其次,改进主机连接模式,目前证券行业主要运用的一主一备的热备模式,如国内专利CN1366242A公开的一种双机备份方法,该模式通过双机系统间应用层的通信及系统层的支持实现主备机之间同步运行,利用应用层与系统层之间的管理层指控主备机IP间切换、文件及注册表的镜像等操作,但该模式并不适用于信息数据庞大且更新速度极快的证券交易系统,易发生双点故障、延迟响应、吞吐量小等问题。
再次,添加冷备机作为主机热备模式的补充,在热备切换生效后重启冷备机,将冷备机添加入后台集群中,可提高系统整体冗余度,为证券行业系统运营提供灵活性,可在故障切换后快速反应,给系统重上保险,但在证券行业现有系统中,这一添加过程会对正在工作的交易主机造成明显影响,证券行业现有系统加入冷备机的主要方式是系统停机维护,不能够在日中交易期间启动添加冷备机。
[发明内容]
本发明的目的在于解决上述技术问题,提供一种适用于高可用集群计算机系统多机备份要求的订单路由表计算、切换和分发的方法。
为实现上述目的,设计一种高可用多机备份路由表管理与切换方法,其特征在于集群计算机系统由若干台负责交易业务处理的交易主机组成,其中有一台兼作主管理节点,这些交易主机通过中台接入网关接收处理来自前台接入节点的订单并进行处理,再通过中台接入网关将处理结果返回给前台接入节点,主管理节点维护集群成员节点及启动顺序信息,新加入集群的节点可从主管理节点获取最新的集群成员节点信息;构成集群的各台主机之间通过网络进行通信,通过共享存储设备对单一视图的文件系统进行读写访问,通过分布锁服务协调主机间的一致性数据和进行主机间同步,通过集群成员管理服务得到节点失效和节点加入通知。
所述的方法具体包括以下步骤:
a.交易主机根据产品集合进行分区,每台主机仅处理特定产品集合的证券产品,对某一产品集合,对应有主用交易主机(主用机)和备用交易主机(备用机),正常情况下,主用机负责该产品集合的证券交易处理,备用机不进行该产品集合的证券交易处理,备用机通过复制技术保持与主用机的数据一致性,在主用机失效时,备用机将动态调整为该产品集合的主用机;
b.订单路由表负责管理各个产品集合的主用机、备用机信息,这些信息被称为订单路由信息,主用机只能定一个,备用机可以定多个,备用机之间定义接管次序,依次称为第一备机、第二备机,以此类推;静态路由表指在交易系统启动前预先定义在文件中的各个产品集合的主用机、备用机信息,动态路由表指实时计算获得的各个产品集合的主用机、备用机信息;日初启动在各交易主机均工作正常的情况,动态路由表内容即为静态路由表;
c.静态路由表定义了各台交易主机负责处理产品集合,为各台交易主机分配了工作负载,针对硬件条件和业务需求采取灵活的路由表配置方案,以便在保证超高可用的同时,最大程度地利用处理器计算能力,一种配置方案是负载均衡,各台主机均配置为产品集合的主用机和另外两个产品集合的备用机或另一种配置方案是纯备机,一部分主机配置为产品集合的主用机和第二备机,另一部分主机配置为产品集合的第一备机;
d.在集群成员主机发生变化时,动态路由表将重新计算,主管理节点记录节点启动顺序,区分日初启动节点和日中启动节点,日初启动节点在动态路由表对应产品集合中的接管次序,按照静态路由表所定义次序,日中启动节点在动态路由表对应产品集合中的接管次序,按照节点启动的时间顺序;
e.在主机失效时,重新计算动态路由表,该主机原先作为主用机的产品集合,其第一备机变为主用机,第二备机递进变为第一备机,以此类推,该主机原先作为备用机的产品集合,其后的备机递进前推,动态路由表中日初启动节点优先级高于日中启动节点,日中启动节点中启动早的优先级高于启动晚的,这保证了主用机失效时每个产品集合均由准备最充分的备用机最先接管;
f.在冷备机加入集群时,重新计算动态路由表,根据静态路由表获得冷备机相关的产品集合,将冷备机加在这些产品集合接管序列的末尾,冷备机热添加技术,既允许冷备机加入集群并实施数据装载,又不打断当前主用机的正常业务处理,冷备机数据装载需要十数分钟,完成数据装载的冷备机与正常热备机没有差别,在数十秒内完成硬件故障的自动检测和切换。
g.各台交易主机从集群成员管理服务得到节点失效和节点加入通知后,各自计算动态路由表,各自向中台接入网关分发动态路由表,各台交易主机从集群文件系统读取到相同的静态路由表,从主管理节点获取一致的节点启动顺序信息,因此各台交易主机计算所得的动态路由表彼此一致。
所述的交易主机中包含协调器、复制器等功能模块,协调器负责计算动态路由表,协调器在完成动态路由表计算后,将通知复制器和各功能模块实施相应的主备切换工作,待复制器和各功能模块完成主备切换工作后,协调器将向中台各个接入网关分发动态路由表,后台交易主机发给中台接入网关的动态路由表,表示该交易主机作为主用机的产品集合已切换就绪,随后从前台新打入的订单,将通过中台新的订单路由表,转至已就绪的新的主用机进行业务处理。
动态路由表计算方法为:
a.路由管理算法首先分析检查传入的节点序列,确定记录分隔点位置,随之确定日初序列,即在分隔点之前的序列及重启序列,即在分隔点之后的序列;
b.依次检查所有的有效产品集合;
c.依次检查该有效产品集合在静态路由表中对应的节点是否在日初序列中,检查节点包括主用机及各个备用机;
d.当日初序列中有此节点,则在动态路由中添加节点;
e.判断此有效产品集合对应的静态路由节点是否检查结束:
①是,则进入步骤f;
②否,则返回步骤c;
f.判断所有有效产品集合是否检查完毕:
①是,则进入步骤g;
②否,则返回步骤b;
g.依次检查重启序列中的每一个节点;
h.针对当前节点,检查静态路由表中包含该节点的每一个产品集合;
i.将此节点更新到动态路由表中此产品集合的待添加主机位置,然后此待添加主机位置向后移一格,准备后续主机的加入;
j.判断对应产品集合是否检查完毕:
①是,则进入步骤k;
②否,则返回步骤h;
k. 判断重启序列中的节点是否检查完毕:
①是,则进入步骤l;
②否,则返回步骤g;
l.交易主机完成全部动态路由表的计算。
热备主机的路由表切换分发方法为:
a.当通过分布锁服务器获知有主机退出;
b.引发系统中断处理,更新本地静态路由表节点序列并添加主线处理事件;
c.主线处理中,通过分布锁服务器,竞争主管理节点;
d.判断当前主机是否为主管理节点;
①是,则进入步骤e;
②否,则进入步骤f;
e.更新节点序列锁中的节点序列;
f.根据节点序列,计算动态路由表;
g.主机上复制器完成接管后,置对应的产品集合的就绪标签为完成;
h.协调器确认就绪标签后,下发路由表。
冷备机热添加的路由表更新分发方法为:
a.通过分布锁服务器,加入集群;
b.读出节点序列锁中当前的节点序列,并记录于本地变量中;
c.根据节点序列计算动态路由表,获知自己主备处理的产品集合;
d.创建内存,将就绪标签设定为初始状态;
e.进入多阶段启动,创建业务相关资源,装载数据;
f.根据当前最新节点序列,重新计算动态路由表;
g.复制器完成启动,将就绪标签设定为复制态;
h.协调器确认就绪标签后,下发路由器。
本发明与现有技术相比,充分提高了计算机数据处理速度性能,具体的说具有以下有益效用:
a.在现有一主一备的热备模式,升级为一主两备甚至多备的热备模式,从而可以应对主机硬件的双点故障,在平台系统达到超高可用性的同时,各项并发处理、吞吐量、延迟响应、切换时间指标仍保持与原先一主一备模式接近的水平。
b. 以改进方式添加冷备机,作为主机热备模式的补充,在热备切换生效后重启冷备机,将冷备机添加入后台集群中,可提高系统整体冗余度,为证券行业系统运营提供灵活性,可在故障切换后快速反应,给系统重上保险;
c.建立了多台交易主机并行运行的集群系统,提供可灵活定义主机逻辑互备关系的订单路由表,并提供主机失效与恢复时订单路由表计算、切换和分发的方法,为集群系统增强了主机冗余度,充分利用主机计算能力,对系统性能影响较小,成本较低。
[附图说明]
图1为本发明中多机互备集群示意图;
图2为本发明交易主机功能模块示意图;
图3为本发明动态路由表计算流程图;
图4为本发明热备主机的路由表切换分发流程图;
图5为本发明冷备机热添加的路由表更新分发流程图。
[具体实施方式]
为了使本发明的目的原理及设计方案清楚明了,现结合附图对本发明作进一步阐述,其中涉及的方法对本领域技术人员来说是可以实现的。
在多机互备模式改进方面,本技术方案设想,将进入主机处理的产品划分成为不同的产品集合,对于一个产品集合,可以有一台主机作为主用机,可以有多台主机作为备用机,分别称为第一备机,第二备机,第三备机等,对于一台主机可以同时主处理多个产品集合,也可以同时备处理多个产品集合,设计出的多机互备集群如图1所示,图中有4台负责交易业务处理的交易主机构成一个集群,其中有一台兼作主管理节点,由集群基础软件提供集群成员管理服务、分布锁服务和投票服务,主机之间通过网络互连以交换数据和控制消息,主机之间通过存储区域网络(SAN)共享访问磁盘。
其中交易主机内部主要功能模块如图2所示,包括主机、备机及审计日志,备机中包含协调器、复制器、撮合器以及功能模块,由协调器控制复制器、撮合器及其他功能模块的工作,借助共享磁盘上的审计日志实施数据复制,并通过集群成员管理服务和节点序列管理服务保证多主机间数据一致和处理同步,在应用时具体步骤如下:
a.交易主机根据产品集合进行分区,每台主机仅处理特定产品集合的证券产品,对某一产品集合,对应有主用交易主机(主用机)和备用交易主机(备用机),正常情况下,主用机负责该产品集合的证券交易处理,备用机不进行该产品集合的证券交易处理,备用机通过复制技术保持与主用机的数据一致性,在主用机失效时,备用机将动态调整为该产品集合的主用机;
b.订单路由表负责管理各个产品集合的主用机、备用机信息,这些信息被称为订单路由信息,主用机只能定一个,备用机可以定多个,备用机之间定义接管次序,依次称为第一备机、第二备机,以此类推;静态路由表指在交易系统启动前预先定义在文件中的各个产品集合的主用机、备用机信息,动态路由表指实时计算获得的各个产品集合的主用机、备用机信息;日初启动在各交易主机均工作正常的情况,动态路由表内容即为静态路由表;
c.静态路由表定义了各台交易主机负责处理产品集合,为各台交易主机分配了工作负载,针对硬件条件和业务需求采取灵活的路由表配置方案,以便在保证超高可用的同时,最大程度地利用处理器计算能力,一种配置方案是负载均衡,各台主机均配置为产品集合的主用机和另外两个产品集合的备用机或另一种配置方案是纯备机,一部分主机配置为产品集合的主用机和第二备机,另一部分主机配置为产品集合的第一备机;
所述的静态配置路由表如表1所示,其中写明了每个产品集合所对应的主机,第一备机,第二备机等,
表1 静态配置路由
产品集合 | 主用机 | 第一备机 | 第二备机 | 第三备机 |
产品集合1 | 主机1 | 主机2 | 主机3 | 主机5 |
产品集合2 | 主机2 | 主机1 | 主机4 | 主机6 |
产品集合3 | 主机3 | 主机4 | 主机1 | 主机5 |
产品集合4 | 主机1 | 主机3 | 主机2 | 主机6 |
由表1所示,静态路由表配置是通过配置实现的,任何一个产品集合都有一个主用机,和多个备份机,而一台主机可以做多个产品集合的主用机,可以做多个产品集合的备用机,可以只做主用机,也可以只做备用机,因此对于主机角色的定位相对灵活。
另外,根据具体的操作,在集群中会维护一份主机启动序列表,如表2所示:
表2 主机启动序列表
主机1 | 主机2 | 主机3 | 主机4 | 分隔点 | 主机5 | 主机6 |
由表2所示,主机启动序列表分为两部分,由“分隔点”进行区分,在“分隔点”之前的主机认为是日初启动的主机,在“分隔点”之后的主机认为是日中启动(晚启或重启)的主机,该序列是在主机启动过程中由系统判断得出的。
d.在集群成员主机发生变化时,动态路由表将重新计算,主管理节点记录节点启动顺序,区分日初启动节点和日中启动节点,日初启动节点在动态路由表对应产品集合中的接管次序,按照静态路由表所定义次序,日中启动节点在动态路由表对应产品集合中的接管次序,按照节点启动的时间顺序;
路由管理算法根据静态配置路由表和主机启动序列,来计算实时的主机动态路由表,而此动态路由表就是在实时处理中,决定产品集合在哪台主机上进行处理的依据,路由管理算法在计算动态路由表时,对于主机序列中的“日初启动主机”和“日中启动主机”有不同的逻辑:
①对于日初启动主机,路由管理算法不关心主机序列,而是按照静态路由配置中的顺序,来更新动态路由表;
②对于日中启动的主机,路由管理算法会严格根据主机的顺序,结合静态路由配置来更新动态路由表。
而在动态路由表的计算过程中一共会涉及到如下场景:
①主机日初启动
②主机日中启动(重启)
③主机日中退出
在上述的场景中,所有对于动态路由表的计算都严格按照路由管理算法执行,即只以静态路由配置和主机启动序列作为输入,无需其他的数据作为参考。
e.在主机失效时,重新计算动态路由表,该主机原先作为主用机的产品集合,其第一备机变为主用机,第二备机递进变为第一备机,以此类推,该主机原先作为备用机的产品集合,其后的备机递进前推,动态路由表中日初启动节点优先级高于日中启动节点,日中启动节点中启动早的优先级高于启动晚的,这保证了主用机失效时每个产品集合均由准备最充分的备用机最先接管;
f.在冷备机加入集群时,重新计算动态路由表,根据静态路由表获得冷备机相关的产品集合,将冷备机加在这些产品集合接管序列的末尾,冷备机热添加技术,既允许冷备机加入集群并实施数据装载,又不打断当前主用机的正常业务处理,冷备机数据装载需要十数分钟,完成数据装载的冷备机与正常热备机没有差别,在数十秒内完成硬件故障的自动检测和切换。
g.各台交易主机从集群成员管理服务得到节点失效和节点加入通知后,各自计算动态路由表,各自向中台接入网关分发动态路由表,各台交易主机从集群文件系统读取到相同的静态路由表,从主管理节点获取一致的节点启动顺序信息,因此各台交易主机计算所得的动态路由表彼此一致。
实施例
我们选取证券核心交易的撮合主机集群来作为实施例具体说明,在此实施例中集群一共有6台主机,有6个产品集合,下面我们会对这6台主机和6个产品集合进行不同的静态路由配置和主机启动序列组合,并套用统一的路由管理算法,来演示主机从日初启动,到日中退出和重启时,动态路由表如何演变,主机间如何完成对于产品集合的接管。
首先,对于上述6个产品集合到6台主机的映射,确定了表3所示的静态路由配置:
表3 实施例中静态路由配置
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | 主机1 | 主机2 | 主机3 |
产品集合2 | 主机2 | 主机1 | 主机4 |
产品集合3 | 主机3 | 主机4 | 主机5 |
产品集合4 | 主机4 | 主机3 | 主机6 |
产品集合5 | 主机5 | 主机6 | 主机1 |
产品集合6 | 主机6 | 主机5 | 主机2 |
如表3所示,产品集合1到产品集合6,分别在主机1到主机6上作为主处理,为了方便演示说明,我们将每个产品集合的备机都设定为了两个,而在真实生产当中,没有数量限制,且不同产品集合的备机数目不需要相同,在表3的静态配置表中,从第一备机的角度看, 1,2主机互备(主机2备产品集合1,主机1备产品集合2),3,4主机互备,5,6主机互备;从第二备机的角度看,即循环互备,具体的说主机3备产品集合1,主机4备产品集合2,主机5备产品集合3,主机6备产品集合4,主机1备产品集合5,主机2备产品集合6,接下来以此静态路由配置为基础在不同场景下计算动态路由,该动态路由即在实时处理中决定产品集合在分配至哪台交易主机上进行处理的依据:
场景一:日初启动
在日初启动时,如果6台主机都启动,主机启动序列如下:
表4 实施例中主机配置
主机1 | 主机2 | 主机3 | 主机4 | 主机5 | 主机6 | 分隔点 |
由于都是日初启动的主机,因此都在分隔点之前,分隔点之后没有主机,按照上面的静态路由配置和主机启动序列,路由管理算法会计算出日初的动态路由表,具体步骤按照图3所示的动态路由计算流程图进行,由于在此例中,只存在日初启动节点,因而经图3的逻辑计算后获得动态路由表5如下:
表5 实施例中静态路由配置
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | 主机1 | 主机2 | 主机3 |
产品集合2 | 主机2 | 主机1 | 主机4 |
产品集合3 | 主机3 | 主机4 | 主机5 |
产品集合4 | 主机4 | 主机3 | 主机6 |
产品集合5 | 主机5 | 主机6 | 主机1 |
产品集合6 | 主机6 | 主机5 | 主机2 |
由表5看出,当前的动态路由表与静态路由配置是相同的,这时因为在路由计算时,静态路由表中的每个主机都在主机启动序列当中,并且都在“日初启动节点”当中,因此计算得出的动态路由表与静态配置完全相同,在真实的生产当中,这也是我们期望的结果,即在日初启动时,所有的主机能够正常启动,并且计算出符合预期的动态路由表。
场景二:日中退出
在日中的实时运行中,主机可能会由于各种原因退出,当一台主机退出时,其他所有存活的主机都会收到此主机退出的消息,从而触发每个人更新主机启动序列,并重新计算动态路由表,图4展示了主机日中退出时热备主机的路由表切换分发流程图。
当日中主机1退出时,其他主机在收到此消息后,会更新当前的主机启动序列,如表6所示:
表6 更新后的主机配置
主机2 | 主机3 | 主机4 | 主机5 | 主机6 | 分隔点 |
由表6所示,上面序列中由于主机1的退出而去掉了主机,在主机启动序列更新完毕之后,结合静态路由配置,计算出新的动态路由表为:
表7 计算出的新的动态路由表
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | 主机2 | 主机3 | |
产品集合2 | 主机2 | 主机4 | |
产品集合3 | 主机3 | 主机4 | 主机5 |
产品集合4 | 主机4 | 主机3 | 主机6 |
产品集合5 | 主机5 | 主机6 | |
产品集合6 | 主机6 | 主机5 | 主机2 |
从表7所示的动态路由表可以看出,表中已经没有主机1存在了,此动态路由表较之前有如下变化:对于产品集合1,主机2接管成为新的主用机,主机3升级为第一备机,没有第二备机;对于产品集合2,主机4升级成为第一备机,没有第二备机;对于产品集合5,第二备机退出;从主处理的角度来看,主机1的退出,只影响了产品集合1;而从整体动态路由表来看,主机1的退出影响了3个产品集合。
需要说明的是,当主机退出事件触发各个主机更新主机启动序列并重新计算路由表时,每个主机都是独自在进行计算,不需要相互通讯,因为计算时采用的路由管理算法可以保证各个主机自行算出的动态路由表都是相同的。
场景三:日中重启
接着场景二,在主机1退出之后,可以对其进行重启,重启主机1时,其余存活主机会收到有新主机加入集群的消息,从而根据此消息更新主机启动顺序列表,并重新计算动态路由表,图5展示了日中重启时冷备机热添加的路由表更新分发流程图,重启主机1之后,主机启动序列会更新为表8值:
表8 主机启动序列会更新值
主机2 | 主机3 | 主机4 | 主机5 | 主机6 | 分隔点 | 主机1 |
由表8看出,主机1在重启之后,被添加在了分隔点之后,作为“日中启动节点”存在,更新完毕之后,结合静态配置路由计算动态路由如表9所示:
表9 计算获得的动态路由
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | 主机2 | 主机3 | 主机1 |
产品集合2 | 主机2 | 主机4 | 主机1 |
产品集合3 | 主机3 | 主机4 | 主机5 |
产品集合4 | 主机4 | 主机3 | 主机6 |
产品集合5 | 主机5 | 主机6 | 主机1 |
产品集合6 | 主机6 | 主机5 | 主机2 |
由表9看出,经过路由管理算法对于“日初启动节点”和“日中启动节点”的计算,重启的主机1被回填到了其所关心的产品集合的第二备机的位置上,这是本方法的一个特点,即日中重启的主机即使在静态路由表中配置为主用机,在重启完成之后也不会重新成为主用机,即不会在当前主机正常处理的情况下,将产品集合的主处理权夺回来,这样的设计是为了保证处理的稳定性。
以上述的场景为例,当主机1在日中退出后,主机2已经成功的完成了对产品集合1的接管,并且在正常处理,这时为了提高主机冗余性,多增加备机,决定把主机1重启起来,而同时又需要保证产品集合1的处理不受任何影响,因此重启的主机1就作为一个备机的身份出现在动态路由表中,而之所以要将主机1放在最后的备机位置,不放在主机3之前,是因为我们认为重启主机启动就绪需要一段时间,在完全就绪之后,才有可能实施对产品集合的接管,而在主机1启动的过程中,如果主机2退出,则应该保证让准备更为充分的主机3接管,而不是让仍处于启动状态之中的主机1实施接管,因此,日中重启的主机永远会被放置在产品集合对应的主机序列最尾端。
上述3个场景从基本上演示了本方法中的路由管理算法在不同情况下,如何算出合理的动态路由表,下面再给出另外一个非常规启动的场景:
场景四:日初启动时主机不全起
仍然使用表1所示的静态路由配置作为基础,假设日初启动时,只启动了主机1,主机3,主机5,主机6,则主机序列为:
表10 场景四日初启动时主机序列
主机1 | 主机3 | 主机5 | 主机6 | 分隔点 |
根据此主机启动序列,计算出动态路由表11如下:
表11 场景四计算获得的动态路由
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | 主机1 | 主机3 | |
产品集合2 | 主机1 | ||
产品集合3 | 主机3 | 主机5 | |
产品集合4 | 主机3 | 主机6 | |
产品集合5 | 主机5 | 主机6 | 主机1 |
产品集合6 | 主机6 | 主机5 |
上面计算得出的日初启动动态路由表中,由于主机2和4的缺失,主机1和主机3在日初就对两个产品集合作为主用机。
在日中同时启动主机2和主机4之后,主机启动序列如表12所示:
表12 场景四日中启动时主机序列
主机1 | 主机3 | 主机5 | 主机6 | 分隔点 | 主机2 | 主机4 |
根据此序列重新计算动态路由表13可得出:
表13 场景四计算获得的动态路由
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | 主机1 | 主机3 | 主机2 |
产品集合2 | 主机1 | 主机2 | 主机4 |
产品集合3 | 主机3 | 主机5 | 主机4 |
产品集合4 | 主机3 | 主机6 | 主机4 |
产品集合5 | 主机5 | 主机6 | 主机1 |
产品集合6 | 主机6 | 主机5 | 主机2 |
由此可看出,重启主机之后的路由表与场景3中的形式相似,都是重启的主机作为备机存在。
只有当某个产品集合当前没有任何主机对其进行主处理时,重启一台主机,才有可能在重启之后,就成为此产品集合的主机。
场景五:日中重启主机成为主用机
日中经过多番主机退出操作之后,只剩下了主机5和主机6,主机启动序列如表14所示:
表14 场景五日中启动时主机序列
主机5 | 主机6 | 分隔点 |
此时的动态路由表如表15所示:
表15 场景五计算获得的动态路由
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | |||
产品集合2 | |||
产品集合3 | 主机5 | ||
产品集合4 | 主机6 | ||
产品集合5 | 主机5 | 主机6 | |
产品集合6 | 主机6 | 主机5 |
可见产品集合1和产品集合2目前没有任何主机处理,因此当重启主机1的时候,主机启动序列更新如表16所示:
表16 场景五重启主机1后主机序列
主机5 | 主机6 | 分隔点 | 主机1 |
此时主机1在重启完成之后,计算出动态路由表如表17下:
表17 场景五重启主机1后计算获得的动态路由
产品集合 | 主用机 | 第一备机 | 第二备机 |
产品集合1 | 主机1 | ||
产品集合2 | 主机1 | ||
产品集合3 | 主机5 | ||
产品集合4 | 主机6 | ||
产品集合5 | 主机5 | 主机6 | |
产品集合6 | 主机6 | 主机5 |
如表17所示,在这种场景下,主机1在日中重启之后,马上就成为了主用机。
以上即本发明涉及的方法所使用的各种情形,相信经过上述分类叙述,可使本发明内容更易理解。
Claims (6)
1.一种高可用多机备份路由表管理与切换方法,其特征在于集群计算机系统由若干台负责交易业务处理的交易主机组成,其中有一台兼作主管理节点,这些交易主机由中台接入网关接收处理来自前台接入节点的订单并进行处理,再通过中台接入网关将处理结果返回给前台接入节点,主管理节点维护集群成员节点及启动顺序信息,新加入集群的节点可从主管理节点获取最新的集群成员节点信息;构成集群的各台主机之间通过网络进行通信,通过共享存储设备对单一视图的文件系统进行读写访问,通过分布锁服务协调主机间的一致性数据和进行主机间同步,通过集群成员管理服务得到节点失效和节点加入通知。
2.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于所述的方法具体包括以下步骤:
a.交易主机根据产品集合进行分区,每台主机仅处理特定产品集合的证券产品,对某一产品集合,对应有主用交易主机(主用机)和备用交易主机(备用机),正常情况下,主用机负责该产品集合的证券交易处理,备用机不进行该产品集合的证券交易处理,备用机通过复制技术保持与主用机的数据一致性,在主用机失效时,备用机将动态调整为该产品集合的主用机;
b.订单路由表负责管理各个产品集合的主用机、备用机信息,这些信息被称为订单路由信息,主用机只能定一个,备用机可以定多个,备用机之间定义接管次序,依次称为第一备机、第二备机,以此类推;静态路由表指在交易系统启动前预先定义在文件中的各个产品集合的主用机、备用机信息,动态路由表指实时计算获得的各个产品集合的主用机、备用机信息;日初启动在各交易主机均工作正常的情况,动态路由表内容即为静态路由表;
c.静态路由表定义了各台交易主机负责处理产品集合,为各台交易主机分配了工作负载,针对硬件条件和业务需求采取灵活的路由表配置方案,以便在保证超高可用的同时,最大程度地利用处理器计算能力,一种配置方案是负载均衡,各台主机均配置为产品集合的主用机和另外两个产品集合的备用机或另一种配置方案是纯备机,一部分主机配置为产品集合的主用机和第二备机,另一部分主机配置为产品集合的第一备机;
d.在集群成员主机发生变化时,动态路由表将重新计算,主管理节点记录节点启动顺序,区分日初启动节点和日中启动节点,日初启动节点在动态路由表对应产品集合中的接管次序,按照静态路由表所定义次序,日中启动节点在动态路由表对应产品集合中的接管次序,按照节点启动的时间顺序;
e.在主机失效时,重新计算动态路由表,该主机原先作为主用机的产品集合,其第一备机变为主用机,第二备机递进变为第一备机,以此类推,该主机原先作为备用机的产品集合,其后的备机递进前推,动态路由表中日初启动节点优先级高于日中启动节点,日中启动节点中启动早的优先级高于启动晚的,这保证了主用机失效时每个产品集合均由准备最充分的备用机最先接管;
f.在冷备机加入集群时,重新计算动态路由表,根据静态路由表获得冷备机相关的产品集合,将冷备机加在这些产品集合接管序列的末尾,冷备机热添加技术,既允许冷备机加入集群并实施数据装载,又不打断当前主用机的正常业务处理,冷备机数据装载需要十数分钟,完成数据装载的冷备机与正常热备机没有差别,在数十秒内完成硬件故障的自动检测和切换。
g.各台交易主机从集群成员管理服务得到节点失效和节点加入通知后,各自计算动态路由表,各自向中台接入网关分发动态路由表,各台交易主机从集群文件系统读取到相同的静态路由表,从主管理节点获取一致的节点启动顺序信息,因此各台交易主机计算所得的动态路由表彼此一致。
3.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于所述的交易主机中包含协调器、复制器等功能模块,协调器负责计算动态路由表,协调器在完成动态路由表计算后,将通知复制器和各功能模块实施相应的主备切换工作,待复制器和各功能模块完成主备切换工作后,协调器将向中台各个接入网关分发动态路由表,后台交易主机发给中台接入网关的动态路由表,表示该交易主机作为主用机的产品集合已切换就绪,随后从前台新打入的订单,将通过中台新的订单路由表,转至已就绪的新的主用机进行业务处理。
4.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于动态路由表计算方法为:
a.路由管理算法首先分析检查传入的节点序列,确定记录分隔点位置,随之确定日初序列,即在分隔点之前的序列及重启序列,即在分隔点之后的序列;
b.依次检查所有的有效产品集合;
c.依次检查该有效产品集合在静态路由表中对应的节点是否在日初序列中,检查节点包括主用机及各个备用机;
d.当日初序列中有此节点,则在动态路由中添加节点;
e.判断此有效产品集合对应的静态路由节点是否检查结束:
①是,则进入步骤f;
②否,则返回步骤c;
f.判断所有有效产品集合是否检查完毕:
①是,则进入步骤g;
②否,则返回步骤b;
g.依次检查重启序列中的每一个节点;
h.针对当前节点,检查静态路由表中包含该节点的每一个产品集合;
i.将此节点更新到动态路由表中此产品集合的待添加主机位置,然后此待添加主机位置向后移一格,准备后续主机的加入;
j.判断对应产品集合是否检查完毕:
①是,则进入步骤k;
②否,则返回步骤h;
k. 判断重启序列中的节点是否检查完毕:
①是,则进入步骤l;
②否,则返回步骤g;
l.交易主机完成全部动态路由表的计算。
5.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于热备主机的路由表切换分发方法为:
a.当通过分布锁服务器获知有主机退出;
b.引发系统中断处理,更新本地静态路由表节点序列并添加主线处理事件;
c.主线处理中,通过分布锁服务器,竞争主管理节点;
d.判断当前主机是否为主管理节点;
①是,则进入步骤e;
②否,则进入步骤f;
e.更新节点序列锁中的节点序列;
f.根据节点序列,计算动态路由表;
g.主机上复制器完成接管后,置对应的产品集合的就绪标签为完成;
h.协调器确认就绪标签后,下发路由表。
6.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于冷备机热添加的路由表更新分发方法为:
a.通过分布锁服务器,加入集群;
b.读出节点序列锁中当前的节点序列,并记录于本地变量中;
c.根据节点序列计算动态路由表,获知自己主备处理的产品集合;
d.创建内存,将就绪标签设定为初始状态;
e.进入多阶段启动,创建业务相关资源,装载数据;
f.根据当前最新节点序列,重新计算动态路由表;
g.复制器完成启动,将就绪标签设定为复制态;
h.协调器确认就绪标签后,下发路由器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210362493.4A CN102938705B (zh) | 2012-09-25 | 2012-09-25 | 一种高可用多机备份路由表管理与切换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210362493.4A CN102938705B (zh) | 2012-09-25 | 2012-09-25 | 一种高可用多机备份路由表管理与切换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102938705A true CN102938705A (zh) | 2013-02-20 |
CN102938705B CN102938705B (zh) | 2015-03-11 |
Family
ID=47697577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210362493.4A Active CN102938705B (zh) | 2012-09-25 | 2012-09-25 | 一种高可用多机备份路由表管理与切换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102938705B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647668A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种高可用集群内主机群体决策系统及切换方法 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN104036043A (zh) * | 2014-07-01 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种mysql高可用的方法及管理节点 |
CN104168057A (zh) * | 2013-05-20 | 2014-11-26 | 中兴通讯股份有限公司 | 一种主备链路倒换方法、装置及系统 |
CN103647834B (zh) * | 2013-12-16 | 2017-03-22 | 上海证券交易所 | 一种用于处理多阶段分布式任务调度的系统及方法 |
CN107367982A (zh) * | 2017-07-17 | 2017-11-21 | 中山大学 | 基于嵌入式的低速电动车智能驾驶控制系统 |
CN108184260A (zh) * | 2017-12-26 | 2018-06-19 | 生迪智慧科技有限公司 | Zigbee节点的网络状态标识方法和装置 |
CN108848184A (zh) * | 2018-06-29 | 2018-11-20 | 北京金山安全软件有限公司 | 一种基于信任机制的区块链节点同步方法及装置 |
CN109992427A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团辽宁有限公司 | Dpi关联规则回填处理方法、装置、设备及介质 |
CN110324415A (zh) * | 2019-06-28 | 2019-10-11 | 百度在线网络技术(北京)有限公司 | 一种对等网络的路由实现方法、装置、设备和介质 |
CN112035183A (zh) * | 2020-08-31 | 2020-12-04 | 中国银行股份有限公司 | 微应用的接入方法及装置 |
CN113169895A (zh) * | 2018-11-21 | 2021-07-23 | 瑞典爱立信有限公司 | 用于具有低时延故障转移的虚拟化服务的n+1冗余 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494693A (zh) * | 2001-04-30 | 2004-05-05 | �Ҵ���˾ | 群集计算机系统中的组访问专用化 |
US20110099360A1 (en) * | 2009-10-26 | 2011-04-28 | International Business Machines Corporation | Addressing Node Failure During A Hyperswap Operation |
CN102231681A (zh) * | 2011-06-27 | 2011-11-02 | 中国建设银行股份有限公司 | 一种高可用集群计算机系统及其故障处理方法 |
-
2012
- 2012-09-25 CN CN201210362493.4A patent/CN102938705B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494693A (zh) * | 2001-04-30 | 2004-05-05 | �Ҵ���˾ | 群集计算机系统中的组访问专用化 |
US20110099360A1 (en) * | 2009-10-26 | 2011-04-28 | International Business Machines Corporation | Addressing Node Failure During A Hyperswap Operation |
CN102231681A (zh) * | 2011-06-27 | 2011-11-02 | 中国建设银行股份有限公司 | 一种高可用集群计算机系统及其故障处理方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168057A (zh) * | 2013-05-20 | 2014-11-26 | 中兴通讯股份有限公司 | 一种主备链路倒换方法、装置及系统 |
CN103647668A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种高可用集群内主机群体决策系统及切换方法 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN103647834B (zh) * | 2013-12-16 | 2017-03-22 | 上海证券交易所 | 一种用于处理多阶段分布式任务调度的系统及方法 |
CN103647669B (zh) * | 2013-12-16 | 2017-04-05 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN104036043A (zh) * | 2014-07-01 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种mysql高可用的方法及管理节点 |
CN104036043B (zh) * | 2014-07-01 | 2017-05-03 | 浪潮(北京)电子信息产业有限公司 | 一种mysql高可用的方法及管理节点 |
CN107367982A (zh) * | 2017-07-17 | 2017-11-21 | 中山大学 | 基于嵌入式的低速电动车智能驾驶控制系统 |
CN108184260A (zh) * | 2017-12-26 | 2018-06-19 | 生迪智慧科技有限公司 | Zigbee节点的网络状态标识方法和装置 |
CN109992427A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团辽宁有限公司 | Dpi关联规则回填处理方法、装置、设备及介质 |
CN109992427B (zh) * | 2017-12-30 | 2020-12-01 | 中国移动通信集团辽宁有限公司 | Dpi关联规则回填处理方法、装置、设备及介质 |
CN108848184A (zh) * | 2018-06-29 | 2018-11-20 | 北京金山安全软件有限公司 | 一种基于信任机制的区块链节点同步方法及装置 |
CN108848184B (zh) * | 2018-06-29 | 2020-08-28 | 北京金山安全软件有限公司 | 一种基于信任机制的区块链节点同步方法及装置 |
CN113169895A (zh) * | 2018-11-21 | 2021-07-23 | 瑞典爱立信有限公司 | 用于具有低时延故障转移的虚拟化服务的n+1冗余 |
US11917023B2 (en) | 2018-11-21 | 2024-02-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Fast session restoration for latency sensitive middleboxes |
CN110324415A (zh) * | 2019-06-28 | 2019-10-11 | 百度在线网络技术(北京)有限公司 | 一种对等网络的路由实现方法、装置、设备和介质 |
CN110324415B (zh) * | 2019-06-28 | 2022-04-05 | 百度在线网络技术(北京)有限公司 | 一种对等网络的路由实现方法、装置、设备和介质 |
CN112035183A (zh) * | 2020-08-31 | 2020-12-04 | 中国银行股份有限公司 | 微应用的接入方法及装置 |
CN112035183B (zh) * | 2020-08-31 | 2023-09-19 | 中国银行股份有限公司 | 微应用的接入方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102938705B (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102938705B (zh) | 一种高可用多机备份路由表管理与切换方法 | |
CN109361532B (zh) | 网络数据分析的高可用系统和方法及计算机可读存储介质 | |
CN102346460B (zh) | 一种基于事务的服务控制系统及其控制方法 | |
EP4083786A1 (en) | Cloud operating system management method and apparatus, server, management system, and medium | |
CN102355369B (zh) | 虚拟化集群系统及其处理方法和设备 | |
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
CN108200124B (zh) | 一种高可用应用程序架构及构建方法 | |
US11647075B2 (en) | Commissioning and decommissioning metadata nodes in a running distributed data storage system | |
CN110727709A (zh) | 一种集群数据库系统 | |
CN106850260A (zh) | 一种虚拟化资源管理平台的部署方法和装置 | |
CN107919977B (zh) | 一种基于Paxos协议的在线扩容、在线缩容的方法和装置 | |
CN102594861A (zh) | 一种多服务器负载均衡的云存储系统 | |
CN104081354A (zh) | 在可缩放环境中管理分区 | |
CN103647668A (zh) | 一种高可用集群内主机群体决策系统及切换方法 | |
CN105159798A (zh) | 一种虚拟机的双机热备方法、双机热备管理服务器和系统 | |
CN105183554A (zh) | 高性能计算与云计算混合计算系统及其资源管理方法 | |
CN103457775A (zh) | 一种基于角色的高可用虚拟机池化管理系统 | |
CN110784331B (zh) | 一种共识流程恢复方法及相关节点 | |
CN105245523A (zh) | 应用于桌面虚拟化场景的存储服务平台及其实现方法 | |
CN113821376B (zh) | 一种基于云灾备的一体化备份容灾方法及系统 | |
CN103473328A (zh) | 一种基于mysql的数据库云及其建立方法 | |
CN103634411A (zh) | 一种具有状态一致性的市场数据实时广播系统及方法 | |
CN112190924A (zh) | 一种数据容灾方法、装置及计算机可读介质 | |
CN115794499B (zh) | 一种用于分布式块存储集群间双活复制数据的方法和系统 | |
CN110348826A (zh) | 异地多活容灾方法、系统、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170707 Address after: 200131 (Shanghai) Pudong New Area free trade test zone, Taichung North Road, No. 8 Patentee after: Shanghai Stock Exchange Technology Co., Ltd. Address before: 200120 No. 528 South Pudong Road, Shanghai, Shanghai, Pudong New Area Patentee before: Shanghai Stock Exchange |
|
TR01 | Transfer of patent right |