一种双活容灾系统、方法、计算机设备及存储介质与流程

文档序号:31529730发布日期:2022-09-14 18:31阅读:240来源:国知局
一种双活容灾系统、方法、计算机设备及存储介质与流程

1.本发明涉及计算机信息系统技术领域,特别是涉及一种双活容灾系统、方法、计算机设备及存储介质。


背景技术:

2.任何持续发展的系统运营都难以避免各种因素导致的系统不可用,例如机房遭遇自然灾害、断电、断网、设备变更、网络变更、系统变更、系统过载或系统bug等。基于此,重视可用性的系统都需要一种适合自己的双活方案。双活方案是一种节约资源的计算机灾备(disaster recovery)方案,其实现模式是让主备两个数据中心都同时承担用户的业务,此时,主备两个数据中心互为备份,并且进行实时备份。双活方案虽然能够降低各种灾害的影响,但如何尽可能快的处理灾害导致的生产问题并恢复生产正常运行是亟待解决的技术问题。


技术实现要素:

3.本发明提供了一种双活容灾系统、方法、计算机设备及存储介质,旨在尽可能快的处理灾害导致的生产问题并恢复生产正常运行。
4.为解决上述技术问题,本发明采用的技术方案为:
5.一种双活容灾系统,包括dns服务器、生产f5设备、灾备f5设备、主网关、灾备网关、生产系统以及灰度系统;所述dns服务器依次与生产f5设备、主网关以及生产系统连接,形成所述双活容灾系统的主线;并与所述灾备f5设备、灾备网关以及灰度系统连接,形成所述双活容灾系统的灾备线;
6.所述dns服务器用于接收消费方系统发送的接口请求,所述接口请求中包括域名+接口;将所述接口请求中的域名解析为对所述生产f5设备以及灾备f5设备的网络请求;所述主网关和灾备网关分别用于检测生产系统和灰度系统的健康状态,并根据所述健康状态检测结果将所述接口请求转发至生产系统和/或灰度系统;所述生产系统和灰度系统用于分别对接收到的接口请求进行处理后,向所述消费方系统返回响应信息。
7.本发明实施例采取的技术方案还包括:所述主网关用于对所述生产系统进行健康检查,判断所述生产系统是否处于存活状态,如果所述生产系统处于死亡状态,则将所有用户流量转至灾备线,通过所述灾备网关将所有接口请求转发至灰度系统,由所述灰度系统对消费方系统的接口请求进行响应。
8.本发明实施例采取的技术方案还包括:所述备灾网关用于对所述灰度系统进行健康检查,判断所述灰度系统是否处于存活状态,如果所述灰度系统处于死亡状态,则将所有用户流量转至主线,通过所述主网关将所有接口请求转发至生产系统,由所述生产系统对消费方系统的接口请求进行响应。
9.本发明实施例采取的技术方案还包括:所述主网关还用于判断所述生产系统是否恢复存活状态,如果所述生产系统恢复存活状态,则将所有用户流量转至主线,根据流量划
分策略设置所述生产系统和灰度系统的流量划分比例,并根据所述流量划分比例将所述接口请求转发至生产系统和灰度系统。
10.本发明实施例采取的技术方案还包括:所述生产系统和灰度系统分别包括各自的数据库和缓存,所述数据库和缓存在应用启动时分别创建一个主数据源和一个灾备数据源,并启动一条随应用一直存活的定时线程,定时检测主数据源和灾备数据源的健康状态,当检测到所述主数据源不可用时,将所述主数据源切换为灾备数据源;当检测到所述主数据源恢复时,则切换回主数据源,所述主数据源与灾备数据源之间的数据通过数据同步工具进行异步同步。
11.本发明实施例采取的技术方案还包括:所述生产系统和灰度系统还分别包括各自的消息中间件集群和注册中心集群。
12.本发明实施例采取的另一技术方案为:一种双活容灾方法,包括:
13.通过dns服务器接收消费方系统发送的接口请求,所述接口请求中包括域名+接口,并将所述接口请求中的域名解析为对所述生产f5设备以及灾备f5设备的网络请求;
14.通过主网关和灾备网关分别检测生产系统和灰度系统的健康状态,并根据所述健康状态检测结果将所述接口请求转发至生产系统和/或灰度系统;
15.通过所述生产系统和灰度系统分别对接收到的接口请求进行处理后,向所述消费方系统返回响应信息。
16.本发明实施例采取的技术方案还包括:所述通过主网关和灾备网关分别检测生产系统和灰度系统的健康状态,并根据所述健康状态检测结果将所述接口请求转发至生产系统和/或灰度系统具体为:
17.通过主网关和灾备网关分别对所述生产系统和灰度系统进行健康检查,判断所述生产系统和灰度系统是否处于存活状态,如果检测到生产系统处于死亡状态,
18.通过所述灾备网关将所有接口请求转发至灰度系统,由所述灰度系统对消费方系统的接口请求进行响应;
19.如果检测到所述灰度系统处于死亡状态,通过所述主网关将所有接口请求转发至生产系统,由所述生产系统对消费方系统的接口请求进行响应;
20.如果检测到所述生产系统已经恢复存活状态,则通过所述主网关根据流量划分策略设置生产系统和灰度系统的流量划分比例。
21.本发明实施例采取的又一技术方案为:一种计算机设备,所述计算机设备包括:
22.存储有可执行程序代码的存储器;
23.与所述存储器连接的处理器;
24.所述处理器调用所述存储器中存储的所述可执行程序代码,执行上述的双活容灾方法。
25.本发明实施例采取的又一技术方案为:一种存储介质,存储有处理器可运行的程序指令,所述程序指令用于执行上述的双活容灾方法。
26.本发明实施例的双活容灾系统、方法、计算机设备及存储介质通过主网关和灾备网关定时检测生产系统和灰度系统的健康状态,当检测到生产系统或灰度系统不可用时,则不会将接口请求转发到该系统上。而当检测到生产系统和灰度系统都处于可用状态时,主网关根据需求设置生产系统和灰度系统的流量划分比例,根据流量划分比例将接口请求
转发到生产系统和灰度系统中进行处理,从而既能保证满足业务诉求,又能保证生产系统和灰度系统的可用,在灾备场景下,能够确保在有至少一个可用的环境的情况下,消费方系统能够请求到目标系统。本技术实施例的双活容灾方法可以实现整个系统链路的自动双活切换,以尽可能快的处理灾害导致的生产问题并恢复生产正常运行,无需人工干预,为系统全天可用提供了有力保障。
附图说明
27.图1是本发明实施例双活容灾系统的结构示意图;
28.图2为本技术实施例的目标系统环境示意图;
29.图3是本发明实施例的双活容灾方法的流程示意图;
30.图4是本发明实施例的计算机设备结构示意图;
31.图5是本发明实施例的存储介质结构示意图。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
34.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
35.请参阅图1,是本发明实施例双活容灾系统的结构示意图。本发明实施例双活容灾系统包括dns服务器10、生产f5设备20、灾备f5设备30、主网关40、灾备网关50、生产系统60以及灰度系统70。其中,dns(domain name system,域名系统)为将域名和ip地址相互映射的一个分布式数据库;f5设备是一种硬件负载均衡的网络设备,用于最大限度提升链路性能与可用性的下一代广域网链路用户流量管理;网关(gateway)又称网间连接器或协议转换器,用于两个高层协议不同的网络互连;生产系统60和灰度系统70分别为两个不同机房的目标系统,用于响应其他消费方系统的接口请求。
36.dns服务器10依次与生产f5设备20、主网关40以及生产系统60连接,形成双活容灾系统的主线;并与灾备f5设备30、灾备网关50以及灰度系统70连接,形成双活容灾系统的灾备线。在系统运行过程中,消费方系统(内部或外部系统)与dns服务器10通信,并向dns服务器10发送接口请求,接口请求中包括域名+接口;dns服务器10用于接收消费方系统发送的接口请求,将接口请求中的域名解析为对生产f5设备20以及灾备f5设备30的网络请求,并通过主网关40根据流量划分策略设置生产系统60和灰度系统70的流量划分比例,根据流量划分比例分别将接口请求转发到生产系统60和灰度系统70;生产系统60和灰度系统70分别对接收到的接口请求进行处理后,向消费方系统返回响应信息,例如对于一个保险报价的接口请求,则生产系统60或灰度系统70根据预设的保费因子对该接口请求进行报价。同时,在系统运行过程中,通过主网关40和灾备网关50分别对生产系统60和灰度系统70进行健康检查,判断生产系统60和灰度系统70是否处于存活状态,当检测到生产系统60处于死亡状态时,则将所有用户流量转至灾备线,通过灾备网关50将所有接口请求转发至灰度系统70,由灰度系统70对消费方系统的接口请求进行响应;当检测到灰度系统70处于死亡状态时,则将所有用户流量转至主线,通过主网关40将所有接口请求转发至生产系统60,由生产系统60对消费方系统的接口请求进行响应。而当检测到生产系统60已经恢复存活状态时,则将用户流量全部转回主线,由主网关40根据流量划分策略设置生产系统60和灰度系统70的流量划分比例,并根据流量划分比例将接口请求转发至生产系统60和灰度系统70进行处理。其中,主网关40具备流量划分的权限,而灾备网关50只能根据生产系统60和灰度系统70的健康状态转发接口请求,即仅在生产系统60处于死亡状态时,将接口请求转发至灰度系统70,而无法设置生产系统60和灰度系统70的流量划分比例。
37.本技术实施例中,健康检查为接口请求形式,而网关由于定位的原因不能直接处理接口请求,只有生产系统60和灰度系统70才能处理接口请求,因此通过健康检查能够同时保证生产f5设备20、灾备f5设备30、主网关40、灾备网关50、生产系统60以及灰度系统70的存活。
38.本技术实施例中,生产系统60以及灰度系统70分别连接在主网关40和灾备网关50之后,通过主网关40和灾备网关50定时检测生产系统60和灰度系统70的健康状态,当检测到生产系统60或灰度系统70不可用时,则不会将接口请求转发到该系统上。而当检测到生产系统60和灰度系统70都处于可用状态时,主网关40根据需求设置生产系统和灰度系统的流量划分比例,根据流量划分比例将接口请求转发到生产系统60和灰度系统70中进行处理,从而既能保证满足业务诉求,又能保证生产系统60和灰度系统70的可用,在灾备场景下,能够确保在有至少一个可用的环境的情况下,消费方系统能够请求到目标系统。
39.进一步地,在灾备场景下,消费方系统请求到目标系统后,是否能够得到正确的响应需要依赖于目标系统的系统环境,具体如图2所示,为本技术实施例的目标系统环境示意图。本技术实施例的生产系统60和灰度系统70环境中分别包括db(data base,数据库)、缓存(redis)、消息中间件和注册中心等基础服务。对于db和缓存:在应用启动时分别创建一个主数据源和一个灾备数据源,并启动一条随应用一直存活的定时线程,定时启动指定数量的io(input/output,输入和输出)线程,在后台定时检测主数据源和灾备数据源的健康状态,避免io堵塞影响健康检查。当检测到主数据源指定次数不可用且灾备数据源可用时,将主数据源切换为灾备数据源;当检测到主数据源恢复时,则切换回主数据源,主数据源与
灾备数据源之间的数据通过数据同步工具进行异步同步。另外,在生产系统60和灰度系统70中分别搭建一个消息中间件集群和注册中心集群,生产系统60和灰度系统70分别使用自己所在环境的消息中间件和注册中心,消息中间件是基于队列与消息传递技术,在网络环境中为目标系统提供同步或异步、可靠的消息传输的支撑性软件系统,消息中间件包括生产者、消费者、broker、注册中心等角色,注册中心用于服务的发现,包括:broker的发现、生产者的发现、消费者的发现等。消息中间件自身的系统定位允许延迟消费,整个消息中间件不可用时会影响目标系统,但对消费方系统影响不大。
40.基于上述,本技术实施例的双活容灾系统可以实现整个系统链路的自动双活切换,以尽可能快的处理灾害导致的生产问题并恢复生产正常运行,无需人工干预,为系统全天可用提供了有力保障。同时,由于f5设备和网关的变更极少,目标系统由于需要支撑业务变更频繁,而灰度系统平时就是目标系统的一部分,使得快速迭代变更的业务系统也能够实现自动双活切换。对于db、缓存有独立可靠的双活策略,对于db、缓存网络、自身资源不足或变更等导致的问题,提供了额外的双活能力。
41.请参阅图3,是本发明实施例的双活容灾方法的流程示意图。本发明实施例的双活容灾方法包括以下步骤:
42.s100:通过dns服务器接收消费方系统发送的接口请求,并将接口请求中的域名解析为对生产f5设备和灾备f5设备的接口请求;
43.s110:通过主网关和灾备网关分别对生产系统和灰度系统进行健康检查,判断生产系统和灰度系统是否处于存活状态,如果检测到生产系统处于死亡状态,执行s120;如果检测到灰度系统处于死亡状态,执行s130;
44.s120:将所有用户流量转至灾备线,通过灾备网关将所有接口请求转发至灰度系统,由灰度系统对消费方系统的接口请求进行响应,并执行s140;
45.s130:将所有用户流量转至主线,通过主网关将所有接口请求转发至生产系统,由生产系统对消费方系统的接口请求进行响应;
46.s140:判断生产系统是否已经恢复存活状态,如果生产系统已经恢复存活状态,执行s150;
47.s150:将用户流量全部转回主线,由主网关根据流量划分策略设置生产系统和灰度系统的流量划分比例,并根据流量划分比例将接口请求转发至生产系统和灰度系统;
48.s160:生产系统和灰度系统分别对接收到的接口请求进行处理后,向消费方系统返回响应信息。
49.基于上述,本发明实施例的双活容灾方法通过主网关和灾备网关定时检测生产系统和灰度系统的健康状态,当检测到生产系统或灰度系统不可用时,则不会将接口请求转发到该系统上。而当检测到生产系统和灰度系统都处于可用状态时,主网关根据需求设置生产系统和灰度系统的流量划分比例,根据流量划分比例将接口请求转发到生产系统和灰度系统中进行处理,从而既能保证满足业务诉求,又能保证生产系统和灰度系统的可用,在灾备场景下,能够确保在有至少一个可用的环境的情况下,消费方系统能够请求到目标系统。本技术实施例的双活容灾方法可以实现整个系统链路的自动双活切换,以尽可能快的处理灾害导致的生产问题并恢复生产正常运行,无需人工干预,为系统全天可用提供了有力保障。
50.在一个可选的实施方式中,还可以:将所述的双活容灾方法的结果上传至区块链中。
51.具体地,基于所述的双活容灾方法的结果得到对应的摘要信息,具体来说,摘要信息由所述的双活容灾方法的结果进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户可以从区块链中下载得该摘要信息,以便查证所述的双活容灾方法的结果是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
52.请参阅图4,为本发明实施例的计算机设备结构示意图。该计算机设备50包括:
53.存储有可执行程序代码的存储器51;
54.与存储器51连接的处理器52;
55.处理器52用于调用存储器51中存储的可执行程序代码并执行以下步骤:通过dns服务器接收消费方系统发送的接口请求,所述接口请求中包括域名+接口,并将所述接口请求中的域名解析为对所述生产f5设备以及灾备f5设备的网络请求;通过主网关和灾备网关分别检测生产系统和灰度系统的健康状态,并根据所述健康状态检测结果将所述接口请求转发至生产系统和/或灰度系统;通过所述生产系统和灰度系统分别对接收到的接口请求进行处理后,向所述消费方系统返回响应信息。
56.其中,处理器52还可以称为cpu(central processing unit,中央处理单元)。处理器52可能是一种集成电路芯片,具有信号的处理能力。处理器52还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
57.本发明实施例的计算机设备通过主网关和灾备网关定时检测生产系统和灰度系统的健康状态,当检测到生产系统或灰度系统不可用时,则不会将接口请求转发到该系统上。而当检测到生产系统和灰度系统都处于可用状态时,主网关根据需求设置生产系统和灰度系统的流量划分比例,根据流量划分比例将接口请求转发到生产系统和灰度系统中进行处理,从而既能保证满足业务诉求,又能保证生产系统和灰度系统的可用,在灾备场景下,能够确保在有至少一个可用的环境的情况下,消费方系统能够请求到目标系统。本技术实施例的双活容灾方法可以实现整个系统链路的自动双活切换,以尽可能快的处理灾害导致的生产问题并恢复生产正常运行,无需人工干预,为系统全天可用提供了有力保障。
58.请参阅图5,图5为本发明实施例的存储介质的结构示意图。本发明实施例的存储介质存储有能够实现以下步骤的程序文件61:通过dns服务器接收消费方系统发送的接口请求,所述接口请求中包括域名+接口,并将所述接口请求中的域名解析为对所述生产f5设备以及灾备f5设备的网络请求;通过主网关和灾备网关分别检测生产系统和灰度系统的健康状态,并根据所述健康状态检测结果将所述接口请求转发至生产系统和/或灰度系统;通过所述生产系统和灰度系统分别对接收到的接口请求进行处理后,向所述消费方系统返回响应信息。其中,该程序文件61可以以软件产品的形式存储在上述存储介质中,包括若干指
令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
59.本发明实施例的存储介质通过主网关和灾备网关定时检测生产系统和灰度系统的健康状态,当检测到生产系统或灰度系统不可用时,则不会将接口请求转发到该系统上。而当检测到生产系统和灰度系统都处于可用状态时,主网关根据需求设置生产系统和灰度系统的流量划分比例,根据流量划分比例将接口请求转发到生产系统和灰度系统中进行处理,从而既能保证满足业务诉求,又能保证生产系统和灰度系统的可用,在灾备场景下,能够确保在有至少一个可用的环境的情况下,消费方系统能够请求到目标系统。本技术实施例的双活容灾方法可以实现整个系统链路的自动双活切换,以尽可能快的处理灾害导致的生产问题并恢复生产正常运行,无需人工干预,为系统全天可用提供了有力保障。
60.在本发明所提供的几个实施例中,应该理解到,所揭露的系统,系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
61.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1