《一种高可用多机备份路由表管理与切换方法.pdf》由会员分享,可在线阅读,更多相关《一种高可用多机备份路由表管理与切换方法.pdf(21页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102938705 A (43)申请公布日 2013.02.20 C N 1 0 2 9 3 8 7 0 5 A *CN102938705A* (21)申请号 201210362493.4 (22)申请日 2012.09.25 H04L 12/24(2006.01) H04L 12/703(2013.01) (71)申请人上海证券交易所 地址 200120 上海市浦东新区浦东南路528 号 (72)发明人黄寅飞 武剑锋 王泊 陈雷 蒋卫 楼晓鸿 叶婧 郑刚 陆素源 白硕 (74)专利代理机构上海三方专利事务所 31127 代理人吴干权 (54) 发明名称 一种高可用多。
2、机备份路由表管理与切换方法 (57) 摘要 本发明涉及证券电子系统数据备份控制技术 领域,具体为一种高可用多机备份路由表管理与 切换方法,其特征在于集群计算机系统由若干交 易主机组成,交易主机由中台接入网关接收处理 订单,再通过中台接入网关将处理结果返回给前 台接入节点,各台主机之间通过网络进行通信,通 过共享存储设备对文件系统进行读写访问,通过 分布锁服务协调主机间的一致性数据和进行主机 间同步,通过集群成员管理服务得到节点失效和 节点加入通知。本发明适用于集群系统,添加了冷 备机及提供可灵活定义主机逻辑互备关系的订单 路由表,实现系统的超高可用性、各项并发处理、 吞吐量、延迟响应、切换时间。
3、指标仍保持与原先一 主一备模式接近的水平,成本较低。 (51)Int.Cl. 权利要求书3页 说明书12页 附图5页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 12 页 附图 5 页 1/3页 2 1.一种高可用多机备份路由表管理与切换方法,其特征在于集群计算机系统由若干 台负责交易业务处理的交易主机组成,其中有一台兼作主管理节点,这些交易主机由中台 接入网关接收处理来自前台接入节点的订单并进行处理,再通过中台接入网关将处理结果 返回给前台接入节点,主管理节点维护集群成员节点及启动顺序信息,新加入集群的节点 可从主管理节点获取最新的集群成员节点信息。
4、;构成集群的各台主机之间通过网络进行通 信,通过共享存储设备对单一视图的文件系统进行读写访问,通过分布锁服务协调主机间 的一致性数据和进行主机间同步,通过集群成员管理服务得到节点失效和节点加入通知。 2.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于所述 的方法具体包括以下步骤: a.交易主机根据产品集合进行分区,每台主机仅处理特定产品集合的证券产品,对某 一产品集合,对应有主用交易主机(主用机)和备用交易主机(备用机),正常情况下,主用机 负责该产品集合的证券交易处理,备用机不进行该产品集合的证券交易处理,备用机通过 复制技术保持与主用机的数据一致性,在主用机失效时,备。
5、用机将动态调整为该产品集合 的主用机; b.订单路由表负责管理各个产品集合的主用机、备用机信息,这些信息被称为订单路 由信息,主用机只能定一个,备用机可以定多个,备用机之间定义接管次序,依次称为第一 备机、第二备机,以此类推;静态路由表指在交易系统启动前预先定义在文件中的各个产品 集合的主用机、备用机信息,动态路由表指实时计算获得的各个产品集合的主用机、备用机 信息;日初启动在各交易主机均工作正常的情况,动态路由表内容即为静态路由表; c.静态路由表定义了各台交易主机负责处理产品集合,为各台交易主机分配了工作负 载,针对硬件条件和业务需求采取灵活的路由表配置方案,以便在保证超高可用的同时,最 。
6、大程度地利用处理器计算能力,一种配置方案是负载均衡,各台主机均配置为产品集合的 主用机和另外两个产品集合的备用机或另一种配置方案是纯备机,一部分主机配置为产品 集合的主用机和第二备机,另一部分主机配置为产品集合的第一备机; d.在集群成员主机发生变化时,动态路由表将重新计算,主管理节点记录节点启动顺 序,区分日初启动节点和日中启动节点,日初启动节点在动态路由表对应产品集合中的接 管次序,按照静态路由表所定义次序,日中启动节点在动态路由表对应产品集合中的接管 次序,按照节点启动的时间顺序; e.在主机失效时,重新计算动态路由表,该主机原先作为主用机的产品集合,其第一 备机变为主用机,第二备机递进。
7、变为第一备机,以此类推,该主机原先作为备用机的产品集 合,其后的备机递进前推,动态路由表中日初启动节点优先级高于日中启动节点,日中启动 节点中启动早的优先级高于启动晚的,这保证了主用机失效时每个产品集合均由准备最充 分的备用机最先接管; f.在冷备机加入集群时,重新计算动态路由表,根据静态路由表获得冷备机相关的产 品集合,将冷备机加在这些产品集合接管序列的末尾,冷备机热添加技术,既允许冷备机加 入集群并实施数据装载,又不打断当前主用机的正常业务处理,冷备机数据装载需要十数 分钟,完成数据装载的冷备机与正常热备机没有差别,在数十秒内完成硬件故障的自动检 测和切换。 g.各台交易主机从集群成员管理。
8、服务得到节点失效和节点加入通知后,各自计算动态 权 利 要 求 书CN 102938705 A 2/3页 3 路由表,各自向中台接入网关分发动态路由表,各台交易主机从集群文件系统读取到相同 的静态路由表,从主管理节点获取一致的节点启动顺序信息,因此各台交易主机计算所得 的动态路由表彼此一致。 3.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于所 述的交易主机中包含协调器、复制器等功能模块,协调器负责计算动态路由表,协调器在完 成动态路由表计算后,将通知复制器和各功能模块实施相应的主备切换工作,待复制器和 各功能模块完成主备切换工作后,协调器将向中台各个接入网关分发动态路由。
9、表,后台交 易主机发给中台接入网关的动态路由表,表示该交易主机作为主用机的产品集合已切换就 绪,随后从前台新打入的订单,将通过中台新的订单路由表,转至已就绪的新的主用机进行 业务处理。 4.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于动态 路由表计算方法为: a.路由管理算法首先分析检查传入的节点序列,确定记录分隔点位置,随之确定日初 序列,即在分隔点之前的序列及重启序列,即在分隔点之后的序列; b.依次检查所有的有效产品集合; c.依次检查该有效产品集合在静态路由表中对应的节点是否在日初序列中,检查节点 包括主用机及各个备用机; d.当日初序列中有此节点,则在动态路由。
10、中添加节点; e.判断此有效产品集合对应的静态路由节点是否检查结束: 是,则进入步骤f; 否,则返回步骤c; f.判断所有有效产品集合是否检查完毕: 是,则进入步骤g; 否,则返回步骤b; g.依次检查重启序列中的每一个节点; h.针对当前节点,检查静态路由表中包含该节点的每一个产品集合; i.将此节点更新到动态路由表中此产品集合的待添加主机位置,然后此待添加主机位 置向后移一格,准备后续主机的加入; j.判断对应产品集合是否检查完毕: 是,则进入步骤k; 否,则返回步骤h; k. 判断重启序列中的节点是否检查完毕: 是,则进入步骤l; 否,则返回步骤g; l.交易主机完成全部动态路由表的计算。
11、。 5.如权利要求1所述的一种高可用多机备份路由表管理与切换方法,其特征在于热备 主机的路由表切换分发方法为: a.当通过分布锁服务器获知有主机退出; b.引发系统中断处理,更新本地静态路由表节点序列并添加主线处理事件; 权 利 要 求 书CN 102938705 A 3/3页 4 c.主线处理中,通过分布锁服务器,竞争主管理节点; d.判断当前主机是否为主管理节点; 是,则进入步骤e; 否,则进入步骤f; e.更新节点序列锁中的节点序列; f.根据节点序列,计算动态路由表; g.主机上复制器完成接管后,置对应的产品集合的就绪标签为完成; h.协调器确认就绪标签后,下发路由表。 6.如权利要求。
12、1所述的一种高可用多机备份路由表管理与切换方法,其特征在于冷备 机热添加的路由表更新分发方法为: a.通过分布锁服务器,加入集群; b.读出节点序列锁中当前的节点序列,并记录于本地变量中; c.根据节点序列计算动态路由表,获知自己主备处理的产品集合; d.创建内存,将就绪标签设定为初始状态; e.进入多阶段启动,创建业务相关资源,装载数据; f.根据当前最新节点序列,重新计算动态路由表; g.复制器完成启动,将就绪标签设定为复制态; h.协调器确认就绪标签后,下发路由器。 权 利 要 求 书CN 102938705 A 1/12页 5 一种高可用多机备份路由表管理与切换方法 技术领域 0001。
13、 本发明涉及证券电子系统数据备份控制技术领域,具体的说是一种高可用多机备 份路由表分布计算、多机协调与中央分发等管理与切换方法。 背景技术 0002 证券交易所为证券市场提供公共的交易平台,其中证券核心交易系统作为证券产 品实时竞价撮合的平台系统,也被称为竞价撮合平台,属于关键业务系统。 0003 竞价撮合平台由后台负责计算处理的多主机集群、中台接入网关和前台接入节点 构成,由于竞价撮合平台需要处理来自全国百余家证券公司、数千家营业部、九千万投资 者、平均每秒数千笔、峰值达每秒十万笔的订单流,并在百毫秒级的时间范围内快速响应, 且其性能安全可靠直接关系到国内金融市场的繁荣稳定,因此竞价撮合平台。
14、需要保证稳 定、高可用性。 0004 由于硬件、网络、软件、人为误操作等易造成单点故障,若无法在短时间内完成自 动检测则将延缓系统正常营运;且主机硬件系统故障占据了总体故障发生的较大比例,因 此目前为进一步提高竞价撮合平台可用性主要从两方面着手: 0005 首先,完善自动检测系统,目标为即使出现硬件、网络、软件、人为误操作造成的单 点故障,可以在数十秒内完成硬件、网络、系统故障的自动检测和切换,令对证券市场的影 响将至最低; 0006 其次,改进主机连接模式,目前证券行业主要运用的一主一备的热备模式,如国内 专利CN1366242A公开的一种双机备份方法,该模式通过双机系统间应用层的通信及系统。
15、 层的支持实现主备机之间同步运行,利用应用层与系统层之间的管理层指控主备机IP间 切换、文件及注册表的镜像等操作,但该模式并不适用于信息数据庞大且更新速度极快的 证券交易系统,易发生双点故障、延迟响应、吞吐量小等问题。 0007 再次,添加冷备机作为主机热备模式的补充,在热备切换生效后重启冷备机,将冷 备机添加入后台集群中,可提高系统整体冗余度,为证券行业系统运营提供灵活性,可在故 障切换后快速反应,给系统重上保险,但在证券行业现有系统中,这一添加过程会对正在工 作的交易主机造成明显影响,证券行业现有系统加入冷备机的主要方式是系统停机维护, 不能够在日中交易期间启动添加冷备机。 发明内容 00。
16、08 本发明的目的在于解决上述技术问题,提供一种适用于高可用集群计算机系统多 机备份要求的订单路由表计算、切换和分发的方法。 0009 为实现上述目的,设计一种高可用多机备份路由表管理与切换方法,其特征在于 集群计算机系统由若干台负责交易业务处理的交易主机组成,其中有一台兼作主管理节 点,这些交易主机通过中台接入网关接收处理来自前台接入节点的订单并进行处理,再通 过中台接入网关将处理结果返回给前台接入节点,主管理节点维护集群成员节点及启动顺 说 明 书CN 102938705 A 2/12页 6 序信息,新加入集群的节点可从主管理节点获取最新的集群成员节点信息;构成集群的各 台主机之间通过网络。
17、进行通信,通过共享存储设备对单一视图的文件系统进行读写访问, 通过分布锁服务协调主机间的一致性数据和进行主机间同步,通过集群成员管理服务得到 节点失效和节点加入通知。 0010 所述的方法具体包括以下步骤: 0011 a.交易主机根据产品集合进行分区,每台主机仅处理特定产品集合的证券产品, 对某一产品集合,对应有主用交易主机(主用机)和备用交易主机(备用机),正常情况下,主 用机负责该产品集合的证券交易处理,备用机不进行该产品集合的证券交易处理,备用机 通过复制技术保持与主用机的数据一致性,在主用机失效时,备用机将动态调整为该产品 集合的主用机; 0012 b.订单路由表负责管理各个产品集合的。
18、主用机、备用机信息,这些信息被称为订 单路由信息,主用机只能定一个,备用机可以定多个,备用机之间定义接管次序,依次称为 第一备机、第二备机,以此类推;静态路由表指在交易系统启动前预先定义在文件中的各个 产品集合的主用机、备用机信息,动态路由表指实时计算获得的各个产品集合的主用机、备 用机信息;日初启动在各交易主机均工作正常的情况,动态路由表内容即为静态路由表; 0013 c.静态路由表定义了各台交易主机负责处理产品集合,为各台交易主机分配了工 作负载,针对硬件条件和业务需求采取灵活的路由表配置方案,以便在保证超高可用的同 时,最大程度地利用处理器计算能力,一种配置方案是负载均衡,各台主机均配置。
19、为产品集 合的主用机和另外两个产品集合的备用机或另一种配置方案是纯备机,一部分主机配置为 产品集合的主用机和第二备机,另一部分主机配置为产品集合的第一备机; 0014 d.在集群成员主机发生变化时,动态路由表将重新计算,主管理节点记录节点启 动顺序,区分日初启动节点和日中启动节点,日初启动节点在动态路由表对应产品集合中 的接管次序,按照静态路由表所定义次序,日中启动节点在动态路由表对应产品集合中的 接管次序,按照节点启动的时间顺序; 0015 e.在主机失效时,重新计算动态路由表,该主机原先作为主用机的产品集合,其第 一备机变为主用机,第二备机递进变为第一备机,以此类推,该主机原先作为备用机的。
20、产品 集合,其后的备机递进前推,动态路由表中日初启动节点优先级高于日中启动节点,日中启 动节点中启动早的优先级高于启动晚的,这保证了主用机失效时每个产品集合均由准备最 充分的备用机最先接管; 0016 f.在冷备机加入集群时,重新计算动态路由表,根据静态路由表获得冷备机相关 的产品集合,将冷备机加在这些产品集合接管序列的末尾,冷备机热添加技术,既允许冷备 机加入集群并实施数据装载,又不打断当前主用机的正常业务处理,冷备机数据装载需要 十数分钟,完成数据装载的冷备机与正常热备机没有差别,在数十秒内完成硬件故障的自 动检测和切换。 0017 g.各台交易主机从集群成员管理服务得到节点失效和节点加入。
21、通知后,各自计算 动态路由表,各自向中台接入网关分发动态路由表,各台交易主机从集群文件系统读取到 相同的静态路由表,从主管理节点获取一致的节点启动顺序信息,因此各台交易主机计算 所得的动态路由表彼此一致。 0018 所述的交易主机中包含协调器、复制器等功能模块,协调器负责计算动态路由表, 说 明 书CN 102938705 A 3/12页 7 协调器在完成动态路由表计算后,将通知复制器和各功能模块实施相应的主备切换工作, 待复制器和各功能模块完成主备切换工作后,协调器将向中台各个接入网关分发动态路由 表,后台交易主机发给中台接入网关的动态路由表,表示该交易主机作为主用机的产品集 合已切换就绪,。
22、随后从前台新打入的订单,将通过中台新的订单路由表,转至已就绪的新的 主用机进行业务处理。 0019 动态路由表计算方法为: 0020 a.路由管理算法首先分析检查传入的节点序列,确定记录分隔点位置,随之确定 日初序列,即在分隔点之前的序列及重启序列,即在分隔点之后的序列; 0021 b.依次检查所有的有效产品集合; 0022 c.依次检查该有效产品集合在静态路由表中对应的节点是否在日初序列中,检查 节点包括主用机及各个备用机; 0023 d.当日初序列中有此节点,则在动态路由中添加节点; 0024 e.判断此有效产品集合对应的静态路由节点是否检查结束: 0025 是,则进入步骤f; 0026 。
23、否,则返回步骤c; 0027 f.判断所有有效产品集合是否检查完毕: 0028 是,则进入步骤g; 0029 否,则返回步骤b; 0030 g.依次检查重启序列中的每一个节点; 0031 h.针对当前节点,检查静态路由表中包含该节点的每一个产品集合; 0032 i.将此节点更新到动态路由表中此产品集合的待添加主机位置,然后此待添加主 机位置向后移一格,准备后续主机的加入; 0033 j.判断对应产品集合是否检查完毕: 0034 是,则进入步骤k; 0035 否,则返回步骤h; 0036 k. 判断重启序列中的节点是否检查完毕: 0037 是,则进入步骤l; 0038 否,则返回步骤g; 003。
24、9 l.交易主机完成全部动态路由表的计算。 0040 热备主机的路由表切换分发方法为: 0041 a.当通过分布锁服务器获知有主机退出; 0042 b.引发系统中断处理,更新本地静态路由表节点序列并添加主线处理事件; 0043 c.主线处理中,通过分布锁服务器,竞争主管理节点; 0044 d.判断当前主机是否为主管理节点; 0045 是,则进入步骤e; 0046 否,则进入步骤f; 0047 e.更新节点序列锁中的节点序列; 0048 f.根据节点序列,计算动态路由表; 0049 g.主机上复制器完成接管后,置对应的产品集合的就绪标签为完成; 说 明 书CN 102938705 A 4/12页。
25、 8 0050 h.协调器确认就绪标签后,下发路由表。 0051 冷备机热添加的路由表更新分发方法为: 0052 a.通过分布锁服务器,加入集群; 0053 b.读出节点序列锁中当前的节点序列,并记录于本地变量中; 0054 c.根据节点序列计算动态路由表,获知自己主备处理的产品集合; 0055 d.创建内存,将就绪标签设定为初始状态; 0056 e.进入多阶段启动,创建业务相关资源,装载数据; 0057 f.根据当前最新节点序列,重新计算动态路由表; 0058 g.复制器完成启动,将就绪标签设定为复制态; 0059 h.协调器确认就绪标签后,下发路由器。 0060 本发明与现有技术相比,充分。
26、提高了计算机数据处理速度性能,具体的说具有以 下有益效用: 0061 a.在现有一主一备的热备模式,升级为一主两备甚至多备的热备模式,从而可以 应对主机硬件的双点故障,在平台系统达到超高可用性的同时,各项并发处理、吞吐量、延 迟响应、切换时间指标仍保持与原先一主一备模式接近的水平。 0062 b. 以改进方式添加冷备机,作为主机热备模式的补充,在热备切换生效后重启冷 备机,将冷备机添加入后台集群中,可提高系统整体冗余度,为证券行业系统运营提供灵活 性,可在故障切换后快速反应,给系统重上保险; 0063 c.建立了多台交易主机并行运行的集群系统,提供可灵活定义主机逻辑互备关系 的订单路由表,并提。
27、供主机失效与恢复时订单路由表计算、切换和分发的方法,为集群系统 增强了主机冗余度,充分利用主机计算能力,对系统性能影响较小,成本较低。 附图说明 0064 图1为本发明中多机互备集群示意图; 0065 图2为本发明交易主机功能模块示意图; 0066 图3为本发明动态路由表计算流程图; 0067 图4为本发明热备主机的路由表切换分发流程图; 0068 图5为本发明冷备机热添加的路由表更新分发流程图。 具体实施方式 0069 为了使本发明的目的原理及设计方案清楚明了,现结合附图对本发明作进一步阐 述,其中涉及的方法对本领域技术人员来说是可以实现的。 0070 在多机互备模式改进方面,本技术方案设想。
28、,将进入主机处理的产品划分成为不 同的产品集合,对于一个产品集合,可以有一台主机作为主用机,可以有多台主机作为备用 机,分别称为第一备机,第二备机,第三备机等,对于一台主机可以同时主处理多个产品集 合,也可以同时备处理多个产品集合,设计出的多机互备集群如图1所示,图中有4台负责 交易业务处理的交易主机构成一个集群,其中有一台兼作主管理节点,由集群基础软件提 供集群成员管理服务、分布锁服务和投票服务,主机之间通过网络互连以交换数据和控制 消息,主机之间通过存储区域网络(SAN)共享访问磁盘。 说 明 书CN 102938705 A 5/12页 9 0071 其中交易主机内部主要功能模块如图2所示。
29、,包括主机、备机及审计日志,备机中 包含协调器、复制器、撮合器以及功能模块,由协调器控制复制器、撮合器及其他功能模块 的工作,借助共享磁盘上的审计日志实施数据复制,并通过集群成员管理服务和节点序列 管理服务保证多主机间数据一致和处理同步,在应用时具体步骤如下: 0072 a.交易主机根据产品集合进行分区,每台主机仅处理特定产品集合的证券产品, 对某一产品集合,对应有主用交易主机(主用机)和备用交易主机(备用机),正常情况下,主 用机负责该产品集合的证券交易处理,备用机不进行该产品集合的证券交易处理,备用机 通过复制技术保持与主用机的数据一致性,在主用机失效时,备用机将动态调整为该产品 集合的主。
30、用机; 0073 b.订单路由表负责管理各个产品集合的主用机、备用机信息,这些信息被称为订 单路由信息,主用机只能定一个,备用机可以定多个,备用机之间定义接管次序,依次称为 第一备机、第二备机,以此类推;静态路由表指在交易系统启动前预先定义在文件中的各个 产品集合的主用机、备用机信息,动态路由表指实时计算获得的各个产品集合的主用机、备 用机信息;日初启动在各交易主机均工作正常的情况,动态路由表内容即为静态路由表; 0074 c.静态路由表定义了各台交易主机负责处理产品集合,为各台交易主机分配了工 作负载,针对硬件条件和业务需求采取灵活的路由表配置方案,以便在保证超高可用的同 时,最大程度地利用。
31、处理器计算能力,一种配置方案是负载均衡,各台主机均配置为产品集 合的主用机和另外两个产品集合的备用机或另一种配置方案是纯备机,一部分主机配置为 产品集合的主用机和第二备机,另一部分主机配置为产品集合的第一备机; 0075 所述的静态配置路由表如表1所示,其中写明了每个产品集合所对应的主机,第 一备机,第二备机等, 0076 表1 静态配置路由 0077 产品集合主用机第一备机第二备机第三备机 产品集合1主机1主机2主机3主机5 产品集合2主机2主机1主机4主机6 产品集合3主机3主机4主机1主机5 产品集合4主机1主机3主机2主机6 0078 由表1所示,静态路由表配置是通过配置实现的,任何一。
32、个产品集合都有一个主 用机,和多个备份机,而一台主机可以做多个产品集合的主用机,可以做多个产品集合的备 用机,可以只做主用机,也可以只做备用机,因此对于主机角色的定位相对灵活。 0079 另外,根据具体的操作,在集群中会维护一份主机启动序列表,如表2所示: 0080 表2 主机启动序列表 0081 主机1主机2主机3主机4分隔点主机5主机6 说 明 书CN 102938705 A 6/12页 10 0082 由表2所示,主机启动序列表分为两部分,由“分隔点”进行区分,在“分隔点”之 前的主机认为是日初启动的主机,在“分隔点”之后的主机认为是日中启动(晚启或重启)的 主机,该序列是在主机启动过程。
33、中由系统判断得出的。 0083 d.在集群成员主机发生变化时,动态路由表将重新计算,主管理节点记录节点启 动顺序,区分日初启动节点和日中启动节点,日初启动节点在动态路由表对应产品集合中 的接管次序,按照静态路由表所定义次序,日中启动节点在动态路由表对应产品集合中的 接管次序,按照节点启动的时间顺序; 0084 路由管理算法根据静态配置路由表和主机启动序列,来计算实时的主机动态路由 表,而此动态路由表就是在实时处理中,决定产品集合在哪台主机上进行处理的依据,路由 管理算法在计算动态路由表时,对于主机序列中的“日初启动主机”和“日中启动主机”有 不同的逻辑: 0085 对于日初启动主机,路由管理算。
34、法不关心主机序列,而是按照静态路由配置中 的顺序,来更新动态路由表; 0086 对于日中启动的主机,路由管理算法会严格根据主机的顺序,结合静态路由配 置来更新动态路由表。 0087 而在动态路由表的计算过程中一共会涉及到如下场景: 0088 主机日初启动 0089 主机日中启动(重启) 0090 主机日中退出 0091 在上述的场景中,所有对于动态路由表的计算都严格按照路由管理算法执行,即 只以静态路由配置和主机启动序列作为输入,无需其他的数据作为参考。 0092 e.在主机失效时,重新计算动态路由表,该主机原先作为主用机的产品集合,其第 一备机变为主用机,第二备机递进变为第一备机,以此类推,。
35、该主机原先作为备用机的产品 集合,其后的备机递进前推,动态路由表中日初启动节点优先级高于日中启动节点,日中启 动节点中启动早的优先级高于启动晚的,这保证了主用机失效时每个产品集合均由准备最 充分的备用机最先接管; 0093 f.在冷备机加入集群时,重新计算动态路由表,根据静态路由表获得冷备机相关 的产品集合,将冷备机加在这些产品集合接管序列的末尾,冷备机热添加技术,既允许冷备 机加入集群并实施数据装载,又不打断当前主用机的正常业务处理,冷备机数据装载需要 十数分钟,完成数据装载的冷备机与正常热备机没有差别,在数十秒内完成硬件故障的自 动检测和切换。 0094 g.各台交易主机从集群成员管理服务。
36、得到节点失效和节点加入通知后,各自计算 动态路由表,各自向中台接入网关分发动态路由表,各台交易主机从集群文件系统读取到 相同的静态路由表,从主管理节点获取一致的节点启动顺序信息,因此各台交易主机计算 所得的动态路由表彼此一致。 0095 实施例 0096 我们选取证券核心交易的撮合主机集群来作为实施例具体说明,在此实施例中集 群一共有6台主机,有6个产品集合,下面我们会对这6台主机和6个产品集合进行不同的 静态路由配置和主机启动序列组合,并套用统一的路由管理算法,来演示主机从日初启动, 说 明 书CN 102938705 A 10 7/12页 11 到日中退出和重启时,动态路由表如何演变,主机。
37、间如何完成对于产品集合的接管。 0097 首先,对于上述6个产品集合到6台主机的映射,确定了表3所示的静态路由配 置: 0098 表3 实施例中静态路由配置 0099 产品集合主用机第一备机第二备机 产品集合1主机1主机2主机3 产品集合2主机2主机1主机4 产品集合3主机3主机4主机5 产品集合4主机4主机3主机6 产品集合5主机5主机6主机1 产品集合6主机6主机5主机2 0100 如表3所示,产品集合1到产品集合6,分别在主机1到主机6上作为主处理,为 了方便演示说明,我们将每个产品集合的备机都设定为了两个,而在真实生产当中,没有数 量限制,且不同产品集合的备机数目不需要相同,在表3的静。
38、态配置表中,从第一备机的角 度看, 1,2主机互备(主机2备产品集合1,主机1备产品集合2),3,4主机互备,5,6主机 互备;从第二备机的角度看,即循环互备,具体的说主机3备产品集合1,主机4备产品集合 2,主机5备产品集合3,主机6备产品集合4,主机1备产品集合5,主机2备产品集合6,接 下来以此静态路由配置为基础在不同场景下计算动态路由,该动态路由即在实时处理中决 定产品集合在分配至哪台交易主机上进行处理的依据: 0101 场景一:日初启动 0102 在日初启动时,如果6台主机都启动,主机启动序列如下: 0103 表4 实施例中主机配置 0104 主机1主机2主机3主机4主机5主机6分隔。
39、点 0105 由于都是日初启动的主机,因此都在分隔点之前,分隔点之后没有主机,按照上面 的静态路由配置和主机启动序列,路由管理算法会计算出日初的动态路由表,具体步骤按 照图3所示的动态路由计算流程图进行,由于在此例中,只存在日初启动节点,因而经图3 的逻辑计算后获得动态路由表5如下: 0106 表5 实施例中静态路由配置 0107 产品集合主用机第一备机第二备机 产品集合1主机1主机2主机3 说 明 书CN 102938705 A 11 8/12页 12 产品集合2主机2主机1主机4 产品集合3主机3主机4主机5 产品集合4主机4主机3主机6 产品集合5主机5主机6主机1 产品集合6主机6主机。
40、5主机2 0108 由表5看出,当前的动态路由表与静态路由配置是相同的,这时因为在路由计算 时,静态路由表中的每个主机都在主机启动序列当中,并且都在“日初启动节点”当中,因此 计算得出的动态路由表与静态配置完全相同,在真实的生产当中,这也是我们期望的结果, 即在日初启动时,所有的主机能够正常启动,并且计算出符合预期的动态路由表。 0109 场景二:日中退出 0110 在日中的实时运行中,主机可能会由于各种原因退出,当一台主机退出时,其他所 有存活的主机都会收到此主机退出的消息,从而触发每个人更新主机启动序列,并重新计 算动态路由表,图4展示了主机日中退出时热备主机的路由表切换分发流程图。 01。
41、11 当日中主机1退出时,其他主机在收到此消息后,会更新当前的主机启动序列,如 表6所示: 0112 表6 更新后的主机配置 0113 主机2主机3主机4主机5主机6分隔点 0114 由表6所示,上面序列中由于主机1的退出而去掉了主机,在主机启动序列更新完 毕之后,结合静态路由配置,计算出新的动态路由表为: 0115 表7 计算出的新的动态路由表 0116 产品集合主用机第一备机第二备机 产品集合1主机2主机3 产品集合2主机2主机4 产品集合3主机3主机4主机5 产品集合4主机4主机3主机6 产品集合5主机5主机6 产品集合6主机6主机5主机2 0117 从表7所示的动态路由表可以看出,表中。
42、已经没有主机1存在了,此动态路由表较 之前有如下变化:对于产品集合1,主机2接管成为新的主用机,主机3升级为第一备机,没 说 明 书CN 102938705 A 12 9/12页 13 有第二备机;对于产品集合2,主机4升级成为第一备机,没有第二备机;对于产品集合5, 第二备机退出;从主处理的角度来看,主机1的退出,只影响了产品集合1;而从整体动态路 由表来看,主机1的退出影响了3个产品集合。 0118 需要说明的是,当主机退出事件触发各个主机更新主机启动序列并重新计算路由 表时,每个主机都是独自在进行计算,不需要相互通讯,因为计算时采用的路由管理算法可 以保证各个主机自行算出的动态路由表都是。
43、相同的。 0119 场景三:日中重启 0120 接着场景二,在主机1退出之后,可以对其进行重启,重启主机1时,其余存活主机 会收到有新主机加入集群的消息,从而根据此消息更新主机启动顺序列表,并重新计算动 态路由表,图5展示了日中重启时冷备机热添加的路由表更新分发流程图,重启主机1之 后,主机启动序列会更新为表8值: 0121 表8 主机启动序列会更新值 0122 主机2主机3主机4主机5主机6分隔点主机1 0123 由表8看出,主机1在重启之后,被添加在了分隔点之后,作为“日中启动节点”存 在,更新完毕之后,结合静态配置路由计算动态路由如表9所示: 0124 表 计算获得的动态路由 0125 。
44、产品集合主用机第一备机第二备机 产品集合1主机2主机3主机1 产品集合2主机2主机4主机1 产品集合3主机3主机4主机5 产品集合4主机4主机3主机6 产品集合5主机5主机6主机1 产品集合6主机6主机5主机2 0126 由表看出,经过路由管理算法对于“日初启动节点”和“日中启动节点”的计算, 重启的主机1被回填到了其所关心的产品集合的第二备机的位置上,这是本方法的一个特 点,即日中重启的主机即使在静态路由表中配置为主用机,在重启完成之后也不会重新成 为主用机,即不会在当前主机正常处理的情况下,将产品集合的主处理权夺回来,这样的设 计是为了保证处理的稳定性。 0127 以上述的场景为例,当主机。
45、1在日中退出后,主机2已经成功的完成了对产品集 合1的接管,并且在正常处理,这时为了提高主机冗余性,多增加备机,决定把主机1重启起 来,而同时又需要保证产品集合1的处理不受任何影响,因此重启的主机1就作为一个备机 的身份出现在动态路由表中,而之所以要将主机1放在最后的备机位置,不放在主机3之 说 明 书CN 102938705 A 13 10/12页 14 前,是因为我们认为重启主机启动就绪需要一段时间,在完全就绪之后,才有可能实施对产 品集合的接管,而在主机1启动的过程中,如果主机2退出,则应该保证让准备更为充分的 主机3接管,而不是让仍处于启动状态之中的主机1实施接管,因此,日中重启的主机。
46、永远 会被放置在产品集合对应的主机序列最尾端。 0128 上述3个场景从基本上演示了本方法中的路由管理算法在不同情况下,如何算出 合理的动态路由表,下面再给出另外一个非常规启动的场景: 0129 场景四:日初启动时主机不全起 0130 仍然使用表所示的静态路由配置作为基础,假设日初启动时,只启动了主机1, 主机3,主机5,主机6,则主机序列为: 0131 表10 场景四日初启动时主机序列 0132 主机1主机3主机5主机6分隔点 0133 根据此主机启动序列,计算出动态路由表11如下: 0134 表11 场景四计算获得的动态路由 0135 产品集合主用机第一备机第二备机 产品集合1主机1主机3。
47、 产品集合2主机1 产品集合3主机3主机5 产品集合4主机3主机6 产品集合5主机5主机6主机1 产品集合6主机6主机5 0136 上面计算得出的日初启动动态路由表中,由于主机2和4的缺失,主机1和主机3 在日初就对两个产品集合作为主用机。 0137 在日中同时启动主机2和主机4之后,主机启动序列如表12所示: 0138 表12 场景四日中启动时主机序列 0139 主机1主机3主机5主机6分隔点主机2主机4 0140 根据此序列重新计算动态路由表13可得出: 0141 表13 场景四计算获得的动态路由 0142 产品集合主用机第一备机第二备机 说 明 书CN 102938705 A 14 11。
48、/12页 15 产品集合1主机1主机3主机2 产品集合2主机1主机2主机4 产品集合3主机3主机5主机4 产品集合4主机3主机6主机4 产品集合5主机5主机6主机1 产品集合6主机6主机5主机2 0143 由此可看出,重启主机之后的路由表与场景3中的形式相似,都是重启的主机作 为备机存在。 0144 只有当某个产品集合当前没有任何主机对其进行主处理时,重启一台主机,才有 可能在重启之后,就成为此产品集合的主机。 0145 场景五:日中重启主机成为主用机 0146 日中经过多番主机退出操作之后,只剩下了主机5和主机6,主机启动序列如表14 所示: 0147 表14 场景五日中启动时主机序列 0148 主机5主机6分隔点 0149 此时的动态路由表如表15所示: 0150 表15 场景五计算获得的动态路由 0151 产品集合主用机第一备机第二备机 产品集合1 产品集合2 产品集合3主机5 产品集合4主机6 产品集合5主机5主机6 产品集合6主机6主机5 0152 可见产品集合1和产品集合2目前没有任何主机处理,因此当重启主机1的时候, 主机启动序列更新如表16所示: 0153 表16 场景五重启主机1后主机序列 0154 说 明 书CN 102938705 A 15 12/1。