容灾方法及装置与流程

文档序号:18009133发布日期:2019-06-25 23:46阅读:151来源:国知局
容灾方法及装置与流程

本发明实施例涉及通信技术领域,尤其涉及一种容灾方法及装置。



背景技术:

当前,企业通过生产站点向外部提供业务,例如生产站点中上线了多种应用及服务,通过这些应用及服务的配合来处理外界的业务请求。然而,有时候可能会由于各种意外导致生产站点出现故障,比如某些应用或者服务故障。因此,为了避免生产站点出现故障导致无法正确处理业务请求,需要设置另外一个站点作为容灾站点,启用故障的应用或者服务在容灾站点中对应的应用或服务,从而保证业务的连续性。

在非云化场景下不存在弹性伸缩,对于生产站点中的每个应用或服务,在容灾站点中都有对应的应用或服务。如此,当这些应用或者服务无法处理请求时,就可以将请求路由到容灾站点对应的应用或者服务上。以实现正常向外部提供服务的目的。在云化场景中往往需要在生产站点中进行弹性伸缩上线新的应用实例,以满足日益增长的业务需求。如果,生产站点中的某些应用出现故障,就可以根据应用的对应关系启用容灾站点中对应的应用。对于这些故障应用的上级应用,它们对原有故障应用的调用或请求就会转移到容灾站点的容灾应用上,从而保证业务的连续性。但是现有的容灾都是针对非云化场景,对于云化场景下生产站点新上线的上级应用实例并未进行容灾处理,其并不知道需要将请求转移到容灾站点的应用上,导致容灾切换后,新的上级应用实例无法正确处理业务。



技术实现要素:

为解决上述技术问题,本申请示出了一种容灾方法及装置。

第一方面,本申请示出了一种容灾方法,生产站点中的故障下级应用已在容灾站点中有对应的容灾应用,所述方法包括:

容灾控制中心确定生产站点中存在新上线的上级应用实例;

所述容灾控制中心获取所述新上线的上级应用实例所属的容灾操作对象;

所述容灾控制中心将所述新上线的上级应用实例的实例标识存储在所述容灾操作对象的应用实例标识列表中;

所述容灾控制中心在确定需要执行容灾切换时,获取所述应用实例标识列表中的所述新上线的上级应用实例的实例标识;

所述容灾控制中心根据所述新上线的上级应用实例的实例标识向所述新上线的上级应用实例发送容灾切换通知,指示所述新上线的上级应用实例调用所述下级应用在容灾站点中对应的容灾应用,所述容灾切换通知至少携带所述容灾站点中的所述容灾应用的地址。

在本申请中,容灾控制中心确定生产站点中存在新上线的上级应用实例;容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。新上线的上级应用实例接收容灾控制中心发送的该容灾切换通知;新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。如此使得生产站点出现故障之后新上线的上级应用实例可以正确处理业务请求。

在一个可选的实现方式中,所述容灾控制中心确定生产站点中存在新上线的上级应用实例,包括:

所述容灾控制中心订阅所述生产站点的拓扑topo信息变更通知;

所述容灾控制中心接收来自所述生产站点的topo信息变更通知,所述topo信息变更通知指示所述生产站点中存在新上线的上级应用实例。

在一个可选的实现方式中,所述方法还包括:

当所述生产站点中的所述下级应用无法提供正常服务时,所述容灾控制中心确定需要执行容灾切换。

在一个可选的实现方式中,所述容灾控制中心获取所述新上线的上级应用实例所属的容灾操作对象,包括:

所述容灾控制中心获取所述新上线的上级应用实例的配置信息,所述配置信息包括所述新上线的上级应用实例所属的容灾操作对象的对象标识;

所述容灾控制中心获取所述配置信息中的对象标识;

所述容灾控制中心将所述对象标识所对应的容灾操作对象确定为所述新上线的上级应用实例所属的容灾操作对象。

为了节省系统资源,在一个可选的实现方式中,所述方法还包括:

当所述生产站点中存在已下线的上级应用实例时,所述容灾控制中心确定所述已下线的上级应用实例所属的容灾操作对象;

所述容灾控制中心在所述已下线的上级应用实例所属的容灾操作对象的应用实例标识列表中删除所述已下线的上级应用实例的实例标识。

在一个可选的实现方式中,所述容灾控制中心在预设时长内未收到上级应用实例的心跳信息时,所述容灾控制中心确定所述上级应用实例已下线。

第二方面,本申请示出了一种容灾方法,生产站点中的故障下级应用已在容灾站点中有对应的容灾应用,所述方法包括:

新上线的上级应用实例接收容灾控制中心发送的容灾切换通知,所述容灾切换通知至少携带所述容灾站点中所述容灾应用的地址;

所述新上线的上级应用实例根据所述地址执行容灾切换操作。

在本申请中,容灾控制中心确定生产站点中存在新上线的上级应用实例;容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。新上线的上级应用实例接收容灾控制中心发送的该容灾切换通知;新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。如此使得生产站点出现故障之后新上线的上级应用实例可以正确处理业务请求。

在一个可选的实现方式中,所述新上线的上级应用实例根据所述地址执行容灾切换操作,包括:

所述新上线的上级应用实例将服务调用地址切换为所述容灾应用在所述容灾站点中的地址。

第三方面,本申请示出了一种容灾装置,生产站点中的故障下级应用已在容灾站点中有对应的容灾应用,所述装置包括:

第一确定单元,用于确定生产站点中存在新上线的上级应用实例;

第一获取单元,用于获取所述新上线的上级应用实例所属的容灾操作对象;

存储单元,用于将所述新上线的上级应用实例的实例标识存储在所述容灾操作对象的应用实例标识列表中;

第二获取单元,用于在确定需要执行容灾切换时,获取所述应用实例标识列表中的所述新上线的上级应用实例的实例标识;

发送单元,用于根据所述新上线的上级应用实例的实例标识向所述新上线的上级应用实例发送容灾切换通知,指示所述新上线的上级应用实例调用所述下级应用在容灾站点中对应的容灾应用,所述容灾切换通知至少携带所述容灾站点中的所述容灾应用的地址。

在本申请中,容灾控制中心确定生产站点中存在新上线的上级应用实例;容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。新上线的上级应用实例接收容灾控制中心发送的该容灾切换通知;新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。如此使得生产站点出现故障之后新上线的上级应用实例可以正确处理业务请求。

在一个可选的实现方式中,所述第一确定单元包括:

订阅单元,用于订阅所述生产站点的拓扑topo信息变更通知;

第一接收单元,用于接收来自所述生产站点的topo信息变更通知,所述topo信息变更通知指示所述生产站点中存在新上线的上级应用实例。

在一个可选的实现方式中,所述装置还包括:

第二确定单元,用于当所述生产站点中的所述下级应用无法提供正常服务时,确定需要执行容灾切换。

在一个可选的实现方式中,所述第一获取单元包括:

第二获取单元,用于获取所述新上线的上级应用实例的配置信息,所述配置信息包括所述新上线的上级应用实例所属的容灾操作对象的对象标识;

第三获取单元,用于获取所述配置信息中的对象标识;

第三确定单元,用于将所述对象标识所对应的容灾操作对象确定为所述新上线的上级应用实例所属的容灾操作对象。

为了节省系统资源,在一个可选的实现方式中,所述装置还包括:

第四确定单元,用于当所述生产站点中存在已下线的上级应用实例时,确定所述已下线的上级应用实例所属的容灾操作对象;

删除单元,用于在所述已下线的上级应用实例所属的容灾操作对象的应用实例标识列表中删除所述已下线的上级应用实例的实例标识。

在一个可选的实现方式中,所述装置还包括:

第五确定单元,用于在预设时长内未收到上级应用实例的心跳信息时,所述容灾控制中心确定所述上级应用实例已下线。

第四方面,本申请示出了一种容灾装置,生产站点中的故障下级应用已在容灾站点中有对应的容灾应用,所述装置包括:

第二接收单元,用于接收容灾控制中心发送的容灾切换通知,所述容灾切换通知至少携带所述容灾站点中所述容灾应用的地址;

切换单元,用于根据所述地址执行容灾切换操作。

在本申请中,容灾控制中心确定生产站点中存在新上线的上级应用实例;容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。新上线的上级应用实例接收容灾控制中心发送的该容灾切换通知;新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。如此使得生产站点出现故障之后新上线的上级应用实例可以正确处理业务请求。

在一个可选的实现方式中,所述切换单元具体用于:将服务调用地址切换为所述容灾应用在所述容灾站点中的地址。

第五方面,本申请示出了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面所述的容灾方法。

第六方面,本申请示出了一种计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面所述的容灾方法。

第七方面,本申请示出了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如第一方面所述的容灾方法。

第八方面,本申请示出了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第二方面所述的容灾方法。

第九方面,本申请示出了一种计算机程序产品,当其在计算机上运行时,使得计算机执行如第二方面所述的容灾方法。

第十方面,本申请示出了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如第二方面所述的容灾方法。

附图说明

图1是根据一示例性实施例示出的一种容灾系统的结构示意图;

图2是根据一示例性实施例示出的一种容灾方法的流程图;

图3是根据一示例性实施例示出的另一种容灾系统的结构示意图;

图4是根据一示例性实施例示出的一种容灾装置的结构示意图;

图5是根据一示例性实施例示出的一种容灾装置的结构示意图。

具体实施方式

本申请提供了一种容灾系统,图1是根据一示例性实施例示出的一种容灾系统的结构示意图,如图1所示,该系统包括容灾控制中心01和多个应用实例02,本申请可以利用虚拟机(virtualmachine,vm)来承载应用实例和容灾控制中心,承载每一个应用实例的vm可以不同,承载应用实例的vm与承载容灾控制中心的vm可以不同。容灾控制中心可以与应用实例之间进行数据交互,例如,容灾控制中心可以向应用实例发送携带容灾站点中下级容灾应用的地址的切换通知,以使应用实例根据该地址调用容灾站点中的下级容灾应用。

本申请还提供了一种容灾方法,图2是根据一示例性实施例示出的一种容灾方法的流程图,如图2所示,该方法应用于图1所示的容灾控制中心01中。生产站点中出现了故障的下级应用,并且该故障的下级应用已经在容灾站点中有对应的容灾应用。该下级应用的上级应用需要调用该下级应用来完成业务请求。对于生产站点中的该上级应用的应用实例已完成了容灾切换,在处理业务请求时,会向容灾站点中的该下级应用进行调用,完成业务请求。但是生产站点中新上线的上级应用实例由于未执行容灾通知,仍会调用生产站点中已故障的下级应用,因此无法完成业务请求。

该方法包括以下步骤。

在步骤s101中,容灾控制中心确定生产站点中存在新上线的上级应用实例;

在本申请中,当需要在生产站点中新上线一个应用实例时,生产站点中的平台即服务(platformasaservice,paas)层可以使用虚拟机镜像在生产站点中创建vm,并在新创建的vm上部署一个应用实例,然后启动部署的应用实例,从而实现在生产站点中新上线一个应用实例。

当需要在生产站点中下线一个应用实例时,paas层可以卸载需要下线的应用实例,从而实现在生产站点中下线一个应用实例;进一步地,还可以卸载用于承载下线的应用实例的vm。

容灾控制中心订阅了生产站点中paas层的拓扑(topo)信息变更通知,每当在生产站点中新上线一个上级应用实例时,paas层会向容灾控制中心发送topo信息变更通知,topo信息变更通知指示生产站点中存在新上线的上级应用实例。每个应用实例会定期向容灾控制中心发送心跳信息,当在生产站点中下线了一个上级应用实例时,容灾控制中心不会再收到该下线的上级应用实例的心跳信息,因此容灾控制中心可确定该上级应用实例已下线。

在步骤s102中,容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;

在本申请中,事先会将应用实例分类,例如,按照其功能分类。例如计算类的应用实例、图像处理类的应用实例以及获取网页数据类的应用实例等等。

例如,以计算类的应用实例为例进行举例说明,在生产站点中上线的计算类的应用实例可以对外提供计算服务,例如,处理计算请求,处理计算请求时所需要使用的下级应用存储在生产站点中。

当用户需要生产站点对一些数据进行计算时,用户可以向生产站点发送计算请求,计算请求中携带需要计算的数据,生产站点接收该计算请求,并将该计算请求分配给在生产站点中上线的计算类的应用实例,计算类的应用实例接收该计算请求,从该计算请求中提取出需要计算的数据,并从生产站点中调用下级应用对需要计算的数据计算,从而完成对该计算请求的处理。

例如,生产站点提供计算个人所得税的服务,用户可以向生产站点提交用于计算个人所得税的计算请求,该计算请求携带用户的税前工资、缴纳社保的金额以及缴纳公积金的金额,计算个人所得税时所需要使用到的下级应用可以提供计算个人所得税的计算公式,当生产站点接收到用户提交的该计算请求时,可以将该计算请求分配给计算类的应用实例,当计算类的应用实例获取到生产站点分配的该计算请求时,可以从该计算请求中提取出用户的税前工资、缴纳社保的金额以及缴纳公积金的金额,以及从生产站点中调用该提供计算公式的下级应用,对用户的税前工资、缴纳社保的金额以及缴纳公积金的金额进行计算得到用户的个人所得税。

然而,随着业务量逐渐增大,生产站点往往会在短时间内接收到大量的计算请求,例如大量的用户短时间内需要计算各自的个人所得税,由于一个计算类的应用实例一次只能够处理一个计算请求,为了提高处理这些计算请求的效率,生产站点中往往会上线多个计算类的应用实例,多个计算类的应用实例属于同一类型的应用实例。同一类型的应用实例需要生产站点中调用的下级应用可以相同,例如,需要调用的下级应用均为计算个人所得税的下级应用等。

因此,当需要将某一上级应用实例的下级应用调用地址从生产站点切换至容灾站点时,往往需要将与该上级应用实例属于同一类型的所有应用实例的下级应用调用地址均从生产站点切换到容灾站点。

相应地,在本申请中,当需要对某一上级应用实例执行容灾切换操作时(如发送容灾切换通知),往往需要对与该应用实例属于同一类型的所有应用实例均执行容灾切换操作。

为了方便执行切换操作,在本申请中,可将在生产站点中上线的属于同一类型的应用实例组成一个容灾操作对象,并将属于同一类型的应用实例的实例标识组成应用实例标识列表。

在本申请中,当paas层使用虚拟机镜像在生产站点中创建vm,并在新创建的vm上部署一个应用实例以及启动部署的应用实例之后,paas层还需要在vm中创建该应用实例的配置信息,并在该应用实例的配置信息中存储该应用实例所属的容灾操作对象的对象标识。如此,之后当在确定需要执行容灾切换时,可以根据该应用实例所属的容灾操作对象的对象标识确定出属于同一类型的所有应用实例,并对属于同一类型的所有应用实例执行容灾切换操作。

因此,在本步骤中,容灾控制中心可以获取新上线的上级应用实例的配置信息,该配置信息包括新上线的上级应用实例所属的容灾操作对象的对象标识,然后获取该配置信息中的对象标识,并将该对象标识所对应的容灾操作对象确定为新上线的上级应用实例所属的容灾操作对象。

在本申请中,也可能不存在新上线的上级应用实例所属的容灾操作对象,如果不存在新上线的上级应用实例所属的容灾操作对象,则确定新上线的上级应用实例不涉及容灾需求,从而可以结束流程。

在步骤s103中,容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;

在步骤s104中,容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;

在本申请中,当生产站点中的下级应用无法提供正常服务时,容灾控制中心确定需要执行容灾切换。

例如,通常情况下,当生产站点中上级应用实例调用下级应用完成一个业务请求之后,下级应用会返回一个反馈信息,反馈信息用以表示该业务请求已得到处理。然而,当下级应用出现故障之后,新上线的上级应用就可能无法调用该下级应用完成对业务请求的处理,下级应用无法正常反馈信息,如返回错误信息或不返回信息,进而可确定生产站点中该下级应用出现故障,因此可以确定需要执行容灾切换。

或者,当容灾控制中心接收到用户提交的切换请求时,容灾控制中心确定需要执行容灾切换。例如,用户可以根据实际需求来确定是否需要执行容灾切换,当需要执行容灾切换时,可以向容灾控制中心提交切换请求,当容灾控制中心接收到该切换请求之后,确定需要执行容灾切换。

本申请中还存在其他需要执行容灾切换的场景,在此不一一举例。

在步骤s105中,容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。

在步骤s106中,新上线的上级应用实例接收容灾控制中心发送的容灾切换通知;

在步骤s107中,新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。

新上线的上级应用实例接收到容灾切换通知后,不再从生产站点中对该下级应用进行调用,而是从容灾站点中对该下级应用对应的容灾应用进行调用,完成对业务请求的处理。

进一步地,在本申请又一实施例中,容灾控制中心还可以向与新上线的上级应用实例属于同一容灾操作对象的其他上级应用实例发送容灾切换通知,以使与新上线的上级应用实例属于同一容灾操作对象的其他上级应用实例分别根据该容灾切换通知执行容灾切换操作。

在本申请中,容灾控制中心确定生产站点中存在新上线的上级应用实例;容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。新上线的上级应用实例接收容灾控制中心发送的该容灾切换通知;新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。如此使得生产站点出现故障之后新上线的上级应用实例可以正确处理业务请求。

在本申请中,在不同的时间段内生产站点接收到的业务请求的数量可能不一样,当接收到的业务请求的数量逐渐增加时,为了提高处理业务请求的效率,需要在生产站点中新上线应用实例,当接收到的业务请求的数量逐渐降低时,为了节省系统资源,需要在生产站点中下线部分应用实例。

当在生产站点中下线一些应用实例之后,假设生产站点出现故障,如果容灾操作对象的应用实例标识列表中还存在已下线的应用实例的实例标识,则在发送容灾切换通知时,容灾控制中心还会根据容灾操作对象的应用实例标识列表向已下线的应用实例发送容灾切换通知,但是事实上,此时已经无需向已下线的应用实例发送容灾切换通知,向已下线的应用实例发送容灾切换通知会浪费系统资源。

因此,为了节省系统资源,容灾控制中心只需向当前未下线的应用实例发送切换通知,而无需再向已下线的应用实例发送切换通知。

为了不再向已下线的应用实例发送切换通知,在本申请中,容灾控制中心还需要确定生产站点中是否存在已下线的应用实例,如果生产站点中存在已下线的应用实例,则容灾控制中心则需要确定已下线的应用实例所属的容灾操作对象,并在已下线的应用实例所属的容灾操作对象的应用实例标识列表中删除已下线的应用实例的实例标识。在s101中已进行说明,当生产站点中下线了一个应用实例后,容灾控制中心不会再收到该应用实例的心跳信息,因此可确定该应用实例已下线,将该应用实例的实例标识从其所属的容灾操作对象的应用实例标识列表中删除。

如此,之后在发送容灾切换通知时,由于已下线的应用实例所属的容灾操作对象的应用实例标识列表中已经不存在已下线的应用实例的实例标识,因此,容灾控制中心根据已下线的应用实例所属的容灾操作对象的应用实例标识列表就不会再向已下线的应用实例发送容灾切换通知,从而可以节省系统资源。

在本申请中,在生产站点中上线的应用实例会周期性向容灾控制中心发送心跳信息,当容灾控制中心接收到某一应用实例发送的心跳信息之后,就可以确定该应用实例为上线的应用实例。其中,如果预设时长内未接收到某一应用实例发送心跳信息,则确定该应用实例已下线。

在本申请中,一个vm中可能会同时承载不用类型的多个应用实例,不同类型的应用实例的通信接口可能不一样,容灾控制中心需要同时支持每一个应用实例的通信接口,如此才能与在生产站点中上线的每一个应用实例之间进行交互,但是这样会增加容灾控制中心的系统复杂度以及与应用实例之间的强耦合。

在本申请中,在图1所示的一种容灾系统的基础之上,参考图3,本申请还提供了另一种容灾系统,图3是根据一示例性实施例示出的一种容灾系统的结构示意图,如图4所示,该系统包括容灾控制中心01、多个应用实例02和多个容灾代理,在该系统中,还包括多个vm,其中一个vm来承载容灾控制中心,其他的vm中的每一个vm中均承载了一个或多个应用实例,每一个承载应用实例的vm中还部署有容灾代理。容灾控制中心可以与容灾代理之间进行交互,例如,容灾控制中心可以向容灾代理发送容灾切换通知,以使容灾代理根据该容灾切换通知对应的应用实例执行容灾切换操作。

在本申请中,容灾控制中心只需与容灾代理之间进行交互,无需与每一个应用实例分别进行交互,例如,容灾控制中心发送容灾切换通知给容灾代理,容灾代理接收该容灾切换通知,并根据该容灾切换通知携带的下级应用在容灾站点中对应的容灾应用的地址对上级应用实例执行容灾切换操作。

每一个容灾代理中的与容灾控制中心之间进行交互的接口都是相同的,容灾控制中心只需支持容灾代理所支持的接口即可,而无需同时支持每一个应用实例所支持的接口,从而可以降低容灾控制中心的系统复杂度。

其次,在本申请中,如果一个vm中同时承载不用类型的多个应用实例,当需要对位于vm中的所有应用实例执行容灾切换操作时,如果没有容灾代理,则容灾控制中心需要分别向位于vm中的每一个应用实例发送容灾切换通知,由于每次发送一个容灾切换通知都需要耗费一定的系统资源,因此,分别向位于vm中的每一个应用实例发送容灾切换通知会耗费较多的系统资源。

而如果在vm中部署有容灾代理,则容灾控制中心只需向容灾代理发送容灾切换通知即可,容灾代理再根据容灾切换通知分别对位于vm中的每一个应用实例执行容灾切换操作,从而可以节省系统资源。

图4是根据一示例性实施例示出的容灾装置的结构示意图,生产站点中的故障下级应用已在容灾站点中有对应的容灾应用,如图4所示,所述装置包括:

第一确定单元11,用于确定生产站点中存在新上线的上级应用实例;

第一获取单元12,用于获取所述新上线的上级应用实例所属的容灾操作对象;

存储单元13,用于将所述新上线的上级应用实例的实例标识存储在所述容灾操作对象的应用实例标识列表中;

第二获取单元14,用于在确定需要执行容灾切换时,获取所述应用实例标识列表中的所述新上线的上级应用实例的实例标识;

发送单元15,用于根据所述新上线的上级应用实例的实例标识向所述新上线的上级应用实例发送容灾切换通知,指示所述新上线的上级应用实例调用所述下级应用在容灾站点中对应的容灾应用,所述容灾切换通知至少携带所述容灾站点中的所述容灾应用的地址。

在本申请中,容灾控制中心确定生产站点中存在新上线的上级应用实例;容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。新上线的上级应用实例接收容灾控制中心发送的该容灾切换通知;新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。如此使得生产站点出现故障之后新上线的上级应用实例可以正确处理业务请求。

在一个可选的实现方式中,所述第一确定单元11包括:

订阅单元,用于订阅所述生产站点的拓扑topo信息变更通知;

第一接收单元,用于接收来自所述生产站点的topo信息变更通知,所述topo信息变更通知指示所述生产站点中存在新上线的上级应用实例。

在一个可选的实现方式中,所述装置还包括:

第二确定单元,用于当所述生产站点中的所述下级应用无法提供正常服务时,确定需要执行容灾切换。

在一个可选的实现方式中,所述第一获取单元12包括:

第二获取单元,用于获取所述新上线的上级应用实例的配置信息,所述配置信息包括所述新上线的上级应用实例所属的容灾操作对象的对象标识;

第三获取单元,用于获取所述配置信息中的对象标识;

第三确定单元,用于将所述对象标识所对应的容灾操作对象确定为所述新上线的上级应用实例所属的容灾操作对象。

为了节省系统资源,在一个可选的实现方式中,所述装置还包括:

第四确定单元,用于当所述生产站点中存在已下线的上级应用实例时,确定所述已下线的上级应用实例所属的容灾操作对象;

删除单元,用于在所述已下线的上级应用实例所属的容灾操作对象的应用实例标识列表中删除所述已下线的上级应用实例的实例标识。

在一个可选的实现方式中,所述装置还包括:

第五确定单元,用于在预设时长内未收到上级应用实例的心跳信息时,所述容灾控制中心确定所述上级应用实例已下线。

图5是根据一示例性实施例示出的容灾装置的结构示意图,生产站点中的故障下级应用已在容灾站点中有对应的容灾应用,如图5所示,所述装置包括:

第二接收单元21,用于接收容灾控制中心发送的容灾切换通知,所述容灾切换通知至少携带所述容灾站点中所述容灾应用的地址;

切换单元22,用于根据所述地址执行容灾切换操作。

在本申请中,容灾控制中心确定生产站点中存在新上线的上级应用实例;容灾控制中心获取新上线的上级应用实例所属的容灾操作对象;容灾控制中心将新上线的上级应用实例的实例标识存储在容灾操作对象的应用实例标识列表中;容灾控制中心在确定需要执行容灾切换时,获取应用实例标识列表中的新上线的上级应用实例的实例标识;容灾控制中心根据新上线的上级应用实例的实例标识向新上线的上级应用实例发送容灾切换通知,指示新上线的上级应用实例调用该下级应用在容灾站点中对应的容灾应用,容灾切换通知至少携带容灾站点中该容灾应用的地址。新上线的上级应用实例接收容灾控制中心发送的该容灾切换通知;新上线的上级应用实例根据下级应用在容灾站点中对应的容灾应用的地址执行容灾切换操作。如此使得生产站点出现故障之后新上线的上级应用实例可以正确处理业务请求。

在一个可选的实现方式中,所述切换单元22具体用于:将服务调用地址切换为所述容灾应用在所述容灾站点中的地址。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1