可左右滑动选省市

一种故障演练方法、装置、电子设备及储存介质

更新时间:2024-01-23
一种故障演练方法、装置、电子设备及储存介质 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:一种故障演练方法、装置、电子设备及储存介质

专利类型:实用新型专利

专利申请号:CN202111524928.6

专利申请(专利权)人:抖音视界有限公司
权利人地址:北京市石景山区实兴大街30号院3号楼2层B-0035房间

专利发明(设计)人:翟峰,侯丽菲,侯志永,童飞帆

专利摘要:本公开提供了一种故障演练方法、装置、电子设备及储存介质,其中,该方法包括:获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果;基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部;将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立;基于所述第一处理结果及第二处理结果,得到故障演练结果。本公开实施例,可以有效的避免故障演练对线上生产集群造成影响,实现对线上无损的故障演练。

主权利要求:
1.一种故障演练方法,其特征在于,包括:
获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果;
基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部;
将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立;
基于所述第一处理结果及所述第二处理结果,得到故障演练结果;
其中,所述基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果,包括:获取预设的故障演练方案,所述故障演练方案包括至少一种故障信息;
基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果。
2.根据权利要求1所述的方法,其特征在于,所述旁路演练集群与所述线上生产集群相互独立是指,所述旁路演练集群读取所述线上生产集群的数据,但是不会影响所述线上生产集群。
3.根据权利要求1所述的方法,其特征在于,所述基于所述用户流量数据,得到镜像用户流量数据,包括:将所述用户流量数据进行复制,得到所述镜像用户流量数据。
4.根据权利要求1所述的方法,其特征在于,所述基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果,包括:基于所述故障演练方案,向所述旁路演练集群中注入所述至少一种故障信息;
基于注入故障后的所述旁路演练集群,对所述镜像用户流量数据进行处理,得到所述第二处理结果。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一处理结果及所述第二处理结果,得到故障演练结果,包括:将所述第一处理结果进行复制,得到镜像处理结果,并将所述镜像处理结果与所述第二处理结果进行比对,得到所述故障演练结果。
6.根据权利要求5所述的方法,其特征在于,所述将所述镜像处理结果及所述第二处理结果进行比对,得到所述故障演练结果,包括:基于预设的校验规则,将所述镜像处理结果及所述第二处理结果进行比对,得到所述故障演练结果。
7.根据权利要求1‑6任一所述的方法,其特征在于,所述故障演练结果包括服务时延、服务错误率、输出差异中的至少一种。
8.一种故障演练装置,其特征在于,包括:
用户流量获取模块,用于获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果;
镜像流量生成模块,用于基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部;
故障处理模块,用于将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立;
结果生成模块,用于基于所述第一处理结果及所述第二处理结果,得到故障演练结果;
其中,所述基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果,包括:获取预设的故障演练方案,所述故障演练方案包括至少一种故障信息;
基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的故障演练的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任意一项所述的故障演练的方法。 说明书 : 一种故障演练方法、装置、电子设备及储存介质技术领域[0001] 本公开涉及计算机技术领域,具体而言,涉及一种故障演练方法、装置、电子设备及储存介质。背景技术[0002] 随着计算机技术的发展,人们对互联网的需求越来越高,使得针对互联网的服务系统需要不断地进行更新与完善。然而,人们在享受互联网所带来的便利同时,也要面对因服务系统故障而带来的负面问题。[0003] 为了提高用户的上网体验,一般都需要对服务系统进行故障演练,以便于提早发现服务系统存在的缺陷。现有技术中,通常直接在线上生产环境进行故障演练,而若故障演练结果不符合预期,则会直接对线上用户造成影响,进而影响用户体验。发明内容[0004] 本公开实施例至少提供一种故障演练方法、装置、电子设备及储存介质。[0005] 第一方面,本公开实施例提供了一种故障演练方法,包括:[0006] 获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果;[0007] 基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部;[0008] 将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立;[0009] 基于所述第一处理结果及所述第二处理结果,得到故障演练结果。[0010] 本公开实施例中,基于获取到的线上生产集群的用户流量数据,得到镜像用户流量数据,并将所述镜像用户流量数据发送到旁路演练集群进行故障处理,然后基于线上生产集群以及旁路演练集群分别得到的结果,得到故障演练结果,如此,可以有效的避免故障演练对线上生产集群造成影响,实现对线上无损的安全故障演练。[0011] 根据第一方面,在一种可能的实施方式中,所述旁路演练集群与所述线上生产集群相互独立是指,所述旁路演练集群可以读取所述线上生产集群的数据,但是不会影响所述线上生产集群。[0012] 根据第一方面,在一种可能的实施方式中,所述基于所述用户流量数据,得到镜像用户流量数据,包括:[0013] 将所述用户流量数据进行复制,得到所述镜像用户流量数据。[0014] 本公开实施例中,通过对用户流量数据进行复制,可以使得镜像用户流量数据与线上的用户流量数据完全相同,进而能够提高故障演练结果的准确率。[0015] 根据第一方面,在一种可能的实施方式中,所述基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果,包括:[0016] 获取预设的故障演练方案,所述故障演练方案包括至少一种故障信息;[0017] 基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果。[0018] 根据第一方面,在一种可能的实施方式中,所述基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果,包括:[0019] 基于所述故障演练方案,向所述旁路演练集群中注入所述至少一条故障信息;[0020] 基于注入故障后的所述旁路演练集群,对所述镜像用户流量数据进行处理,得到所述第二处理结果。[0021] 本公开实施例中,由于基于故障演练方案向旁路演练集群中注入故障信息,可以有效的减少故障演练所消耗的时间,提高故障演练效率。[0022] 根据第一方面,在一种可能的实施方式中,所述基于所述第一处理结果及所述第二处理结果,得到故障演练结果,包括:[0023] 将所述第一处理结果进行复制,得到镜像处理结果,并将所述镜像处理结果与所述第二处理结果进行比对,得到所述故障演练结果。[0024] 本公开实施例中,通过将第一处理结果进行复制得到的镜像处理结果与第二处理结果进行比对,可以更加准确地评估故障对旁路演练集群产生的影响。[0025] 根据第一方面,在一种可能的实施方式中,所述将所述镜像处理结果及所述第二处理结果进行比对,得到所述故障演练结果,包括:[0026] 基于预设的校验规则,将所述镜像处理结果及所述第二处理结果进行比对,得到所述故障演练结果。[0027] 本公开实施例中,通过基于预设的校验规则,将镜像处理结果与第二处理结果进行对比,可以提高镜像处理结果与所述第二处理结果的比对效率。[0028] 根据第一方面,在一种可能的实施方式中,所述故障演练结果包括服务时延、服务错误率、输出差异中的至少一种。[0029] 第二方面,本公开实施例还提供一种故障演练装置,包括:[0030] 用户流量获取模块,用于获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果;[0031] 镜像流量生成模块,用于基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部;[0032] 故障处理模块,用于将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立;[0033] 结果生成模块,用于基于所述第一处理结果及所述第二处理结果,得到故障演练结果。[0034] 根据第二方面,在一种可能的实施方式中,所述旁路演练集群与所述线上生产集群相互独立是指,所述旁路演练集群可以读取所述线上生产集群的数据,但是不会影响所述线上生产集群。[0035] 根据第二方面,在一种可能的实施方式中,所述镜像流量生成模块具体用于:[0036] 将所述用户流量数据进行复制,得到所述镜像用户流量数据。[0037] 根据第二方面,在一种可能的实施方式中,所述故障处理模块具体用于:[0038] 获取预设的故障演练方案,所述故障演练方案包括至少一种故障信息;[0039] 基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果。[0040] 根据第二方面,在一种可能的实施方式中,所述故障处理模块具体用于:[0041] 基于所述故障演练方案,向所述旁路演练集群中注入所述至少一条故障信息;[0042] 基于注入故障后的所述旁路演练集群,对所述镜像用户流量数据进行处理,得到所述第二处理结果。[0043] 根据第二方面,在一种可能的实施方式中,所述结果生成模块具体用于:[0044] 将所述第一处理结果进行复制,得到镜像处理结果,并将所述镜像处理结果与所述第二处理结果进行比对,得到所述故障演练结果。[0045] 根据第二方面,在一种可能的实施方式中,所述结果生成模块具体用于:[0046] 基于预设的校验规则,将所述镜像处理结果及所述第二处理结果进行比对,得到所述故障演练结果。[0047] 根据第二方面,在一种可能的实施方式中,所述故障演练结果包括服务时延、服务错误率、输出差异中的至少一种。[0048] 第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中所述的故障演练方法。[0049] 第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中所述的故障演练方法。[0050] 为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明[0051] 为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。[0052] 图1示出了本公开实施例所提供的一种故障演练方法的流程图;[0053] 图2示出了本公开实施例所提供的一种基于线上生产集群的搜索界面的示意图;[0054] 图3示出了本公开实施例所提供的一种展示故障演练方法的示意图;[0055] 图4示出了本公开实施例所提供的一种基于旁路演练集群得到第二处理结果的方法流程图;[0056] 图5示出了本公开实施例所提供的一种基于故障演练方案得到第二处理结果的方法流程图;[0057] 图6示出了本公开实施例所提供的一种故障演练装置的结构示意图;[0058] 图7示出了本公开实施例所提供的一种电子设备的结构示意图。具体实施方式[0059] 为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。[0060] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。[0061] 本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。[0062] 随着计算机技术的发展,人们对互联网的需求越来越高,使得针对互联网的服务系统需要不断地进行更新与完善。然而,人们在享受互联网所带来的便利同时,也要面对因服务系统故障而带来的负面问题。[0063] 为了提高用户的上网体验,一般都需要对服务系统进行故障演练,以便于提早发现服务系统存在的缺陷。现有技术中,通常直接在线上生产环境进行故障演练,而若故障演练结果不符合预期,则会直接对线上用户造成影响,进而影响用户体验。[0064] 基于上述研究,本公开提供了一种故障演练方法,该方法包括:获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果;基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部;将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立;基于所述第一处理结果及所述第二处理结果,得到故障演练结果。本公开实施例,可以有效的避免故障演练对线上生产集群造成影响,实现对线上无损的安全故障演练。[0065] 为便于对本实施例进行理解,首先对本公开实施例所公开的一种故障演练方法进行详细介绍,本公开实施例所提供的故障演练方法的执行主体一般为具有一定计算能力的电子设备,本公开实施例中,该电子设备为服务器,其中该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、大数据和人工智能平台等基础云计算服务的云服务器。在其他实施方式中,该电子设备还可以是终端设备或其它处理设备,比如终端设备可以为移动设备、手持设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该故障演练方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。[0066] 参见图1所示,为本公开实施例提供的一种故障演练方法的流程图,其中可以应用于上述电子设备中,或应用于本地或云端的服务器中。图1所示的故障演练方法包括以下S101~S104:[0067] S101,获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果。[0068] 示例性地,线上生产集群是指,面向线上用户且具有数据处理能力及数据存储能力的系统,该系统可以部署于服务器上,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、大数据和人工智能平台等基础云计算服务的云服务器。[0069] 用户流量数据是指,同一时间段内不同的客户端响应用户的交互操作而产生的请求指令数据,可以理解,该客户端可以是移动终端设备(如手机),且该客户端可以和服务器进行通信,将生成的请求指令发送至服务器上的线上生产集群,以使得该线上生产集群对该请求指令进行处理,并返回与该请求指令对应的处理结果。其中,该同一时间段可以根据具体情况而设定,比如,该同一时间段可以是1分钟,也可以是3分钟,此处不做具体限定。[0070] 示例性地,参见图2所示,以搜索场景为例进行说明,移动终端设备可以响应用户输入关键词的触发操作生成搜索请求指令,因此,同一时间段的多个搜索请求指令被称为用户流量数据。线上生产集群在接收到该搜索请求指令后,可以对该搜索请求指令进行处理,得到第一处理结果。比如,该线上生产集群可以基于该搜索请求指令所携带的目标关键词,在数据库中查找与该目标关键词所匹配的搜索结果,如图2中所示,该线上生产集群可以将第一处理结果中所包含的多个搜索结果返回至移动终端设备。[0071] 在一些可能的实施方式中,在浏览场景下,该用户流量数据还可以是移动终端设备响应用户针对目标主题的触发操作,而生成的浏览请求指令,比如,用户在推荐界面中浏览到目标主题并且进行触发,此时,线上生产集群对该浏览请求指令进行处理,进而返回针对该目标主题的详细页面。[0072] S102,基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部。[0073] 其中,镜像用户流量数据是用户流量数据通过流量拷贝工具进行复制得到的数据,该镜像用户流量数据可以是用户流量数据的部分,还可以是用户流量数据的全部。[0074] S103,将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立。[0075] 参见图3所示,基于用户流量数据可以得到镜像用户流量数据,然后将镜像用户流量数据发送到旁路演练集群中,得到第二处理结果。其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同但相互独立,也即,旁路演练集群能够完整的模拟线上生产集群的处理逻辑,并且可以读取线上生产集群的存储系统中的数据,但是不会影响线上生产集群,也即,不会对线上生产集群产生副作用。其中,副作用可以包括写入脏数据、影响线上生产集群的稳定性等。此外,旁路演练集群不面向用户。[0076] 示例性地,以搜索场景为例,该镜像用户流量数据为移动终端设备响应用户输入关键词的触发操作而生成的搜索请求指令。旁路演练集群在获取到该搜索请求指令后,可以对该搜索请求指令进行故障处理,得到第二处理结果。[0077] S104,基于所述第一处理结果及所述第二处理结果,得到故障演练结果。[0078] 示例性地,在得到第一处理结果以及第二处理结果之后,可以基于所述第一处理结果及所述第二处理结果,得到故障演练结果。[0079] 具体地,请再次参阅图3,在得到第一处理结果以及第二处理结果之后,将所述第一处理结果进行复制,得到镜像处理结果,然后将所述镜像处理结果与所述第二处理结果进行比对,得到所述故障演练结果。其中,镜像处理结果是第一处理结果通过流量拷贝工具进行复制得到的结果,该镜像处理结果与第一处理结果完全相同。[0080] 比如,请再次参阅图2,针对前述的搜索请求指令,第一处理结果得到三条搜索结果,然后将所述三条搜索结果进行复制,也即,镜像处理结果也得到三条搜索结果,而第二处理结果由于进行故障处理,可能只得到两条搜索结果,或者第二处理结果虽然包括了三条搜索结果,但是每条搜索结果的内容却与镜像处理结果中的搜索结果不同,因此,通过将镜像处理结果以及第二处理结果进行比对,可以得出故障演练结果。[0081] 在一些可能的实施方式中,还可以将所述第一处理结果及所述第二处理结果直接进行比对,得到所述故障演练结果。比对过程与上述的过程类似,在此不再赘述。[0082] 在另一些可能的实施方式中,为了提高比对的效率,还可以基于预设校验规则,将所述镜像处理结果及所述第二处理结果进行比对,得到所述故障演练结果。比如,以搜索场景为例,预设校验规则可以包括搜索结果的数量比对以及每条搜索结果的差异性比对。[0083] 需要说明的是,预设校验规则可以根据场景的不同或者需求的不同进行设置,再比如,以浏览场景为例,该预设校验规则可以是生成的与目标主题相应的页面内容的完整性。比如,在目标主题为文章标题的情况下,页面内容的完整性可以包括文章标题、作者以及文章内容等。[0084] 其中,故障演练结果可以包括服务时延、服务错误率、输出差异中的至少一种。[0085] 示例性地,服务时延是指移动终端设备响应用户的交互操作而产生的请求指令和应答所述请求指令所需要的时间。比如,以搜索场景为例,线上生产集群基于搜索请求指令所携带的目标关键词,在数据库中查找与该目标关键词所匹配的搜索结果,并将多个搜索结果返回至移动终端设备所花费的时间为200毫秒,但旁路演练集群基于搜索请求指令所携带的目标关键词,在数据库中查找与该目标关键词所匹配的搜索结果,并将多个搜索结果返回至移动终端设备所花费的时间为800毫秒,因此,通过比对,可以得出故障演练结果中的服务延时结果。[0086] 服务错误率是指,响应失败的请求指令的数量占总的请求指令数量的比例。比如,以搜索场景为例,有400个移动终端设备响应用户输入关键词的触发操作而生成400个搜索请求指令,线上生产集群响应该400个搜索请求指令,返回400个搜索结果,而旁路演练集群响应该400的搜索请求指令,只得到380的搜索结果,也即,有20个搜索请求指令应答失败,此时,可以得出旁路演练集群的服务错误率为5%。[0087] 输出差异是指输出结果的差异性。比如,以浏览场景为例,线上生产集群在接收到浏览请求指令后,返回针对目标主题的详细页面,该详细页面包括目标主题的题目、作者、内容、发布时间等信息,而旁路演练集群基于该浏览请求指令所生成的详细页面却只包括目标主题的题目、作者以及一小部分内容信息,因此,通过比对,可以得出旁路演练集群中详细页面的信息存在输出差异。[0088] 具体的,在一些可能的实施方式中,在故障演练之后,还可以对旁路演练集群的容灾能力进行判断,比如,以浏览场景为例,旁路演练集群响应浏览请求指令并未生成针对所述目标主题的作者信息,但是通过容灾设计(比如:缓存)之后,可以生成一部分作者信息,而线上生产集群响应该浏览指令可以生成针对所述目标主题的全部作者信息,因此,通过比对,可以得出该容灾能力是否符合预设要求。[0089] 本公开实施例中,基于获取到的线上生产集群的用户流量数据,得到镜像用户流量数据,并将所述镜像用户流量数据发送到旁路演练集群进行故障处理,然后基于线上生产集群以及旁路演练集群分别得到的结果,得到故障演练结果,如此,可以有效的避免故障演练对线上生产集群造成影响,实现对线上无损的安全故障演练。[0090] 针对上述S103,参见图4所示,为本公开实施例所提供的一种基于旁路演练集群得到第二处理结果的方法流程图,包括以下S1031~S1032:[0091] S1031,获取预设的故障演练方案,所述故障演练方案包括至少一种故障信息。[0092] 示例性地,故障演练方案可以预先进行设置,该故障演练方案包括多种故障信息,具体可以包括网络拥塞、机房故障等。所述故障信息可以根据业务需求进行设置,比如,调用数据库时延增加等,另外,还可以自定义多种故障信息的执行顺序和影响时长。[0093] S1032,基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果。[0094] 具体的,在一些可能的实施方式中,通过对所述故障演练方案进行预先设置,然后基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果。[0095] 针对上述S1032,参见图5所示,为本公开实施例所提供的一种基于故障演练方案得到第二处理结果的方法流程图,包括以下S10321~S10322:[0096] S10321,基于所述故障演练方案,向所述旁路演练集群中注入所述至少一条故障信息。[0097] S10322,基于注入故障后的所述旁路演练集群,对所述镜像用户流量数据进行处理,得到所述第二处理结果。[0098] 具体的,在一些可能的实施方式中,可以向旁路演练集群中注入所述至少一条故障信息,然后根据注入故障后的旁路演练集群,对镜像用户流量数据进行处理,得到第二处理结果。[0099] 示例性地,以搜索场景为例,可以向旁路演练集群中注入调用数据库时延增加的故障信息,针对前述的搜索请求指令所携带的目标关键词,在数据库中查找与该目标关键词所匹配的搜索结果,由于旁路演练集群注入了调用数据库时延增加的故障信息,导致需要等待较长时间才从数据库中查找出与该目标关键词所匹配的搜索结果。[0100] 本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。[0101] 基于同一发明构思,本公开实施例中还提供了与故障演练方法对应的故障演练装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述故障演练方法相似,因此装置的实施可以参阅方法的实施,重复之处不再赘述。[0102] 参见图6所示,为本公开实施例所提供的一种故障演练装置的结构示意图,所述装置500包括:[0103] 用户流量获取模块501,用于获取线上生产集群的用户流量数据,所述线上生产集群用于对所述用户流量数据进行处理,得到第一处理结果;[0104] 镜像流量生成模块502,用于基于所述用户流量数据,得到镜像用户流量数据,所述镜像用户流量数据为所述用户流量数据的部分或者全部;[0105] 故障处理模块503,用于将所述镜像用户流量数据发送到旁路演练集群中,并基于所述旁路演练集群对所述镜像用户流量数据进行故障处理,得到第二处理结果;其中,所述旁路演练集群与所述线上生产集群的处理逻辑相同,但相互独立;[0106] 结果生成模块504,用于基于所述第一处理结果及所述第二处理结果,得到故障演练结果。[0107] 在一种可能的实施方式中,所述旁路演练集群与所述线上生产集群相互独立是指,所述旁路演练集群可以读取所述线上生产集群的数据,但是不会对所述线上生产集群产生副作用。[0108] 在一种可能的实施方式中,所述镜像流量生成模块502具体用于:[0109] 将所述用户流量数据进行复制,得到所述镜像用户流量数据。[0110] 在一种可能的实施方式中,所述故障处理模块503具体用于:[0111] 获取预设的故障演练方案,所述故障演练方案包括至少一种故障信息;[0112] 基于所述故障演练方案及所述旁路演练集群,对所述镜像用户流量数据进行故障模拟处理,得到所述第二处理结果。[0113] 在一种可能的实施方式中,所述故障处理模块503具体用于:[0114] 基于所述故障演练方案,向所述旁路演练集群中注入所述至少一条故障信息;[0115] 基于注入故障后的所述旁路演练集群,对所述镜像用户流量数据进行处理,得到所述第二处理结果。[0116] 在一种可能的实施方式中,所述结果生成模块504具体用于:[0117] 将所述第一处理结果及所述第二处理结果进行比对,得到所述故障演练结果。[0118] 在一种可能的实施方式中,所述结果生成模块504具体用于:[0119] 基于预设的校验规则,将所述第一处理结果及所述第二处理结果进行比对,得到所述故障演练结果。[0120] 在一种可能的实施方式中,所述故障演练结果包括服务时延、服务错误率、输出差异中的至少一种。[0121] 关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。[0122] 基于同一技术构思,本申请实施例还提供了一种电子设备。参照图7所示,为本申请实施例所提供的一种电子设备700的结构示意图,包括处理器701、存储器702和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换。[0123] 本申请实施例中,存储器702具体用于存储执行本申请方案的应用程序代码,并由处理器701来控制执行。也即,当电子设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701执行存储器702中存储的应用程序代码,进而执行前述任一实施例中所揭示的方法。[0124] 其中,存储器702可以是,但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(ReadOnlyMemory,ROM),可编程只读存储器(ProgrammableRead-OnlyMemory,PROM),可擦除只读存储器(ErasableProgrammableRead-OnlyMemory,EPROM),电可擦除只读存储器(ElectricErasableProgrammableRead-OnlyMemory,EEPROM)等。[0125] 处理器701可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。[0126] 可以理解的是,本申请实施例示意的结构并不构成对电子设备700的具体限定。在本申请另一些实施例中,电子设备700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。[0127] 本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的故障演练方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。[0128] 本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的故障演练方法的步骤,具体可参见上述方法实施例,在此不再赘述。[0129] 其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(SoftwareDevelopmentKit,SDK)等等。[0130] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0131] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0132] 另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0133] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read‑OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。[0134] 最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

专利地区:北京

专利申请日期:2021-12-14

专利公开日期:2024-06-18

专利公告号:CN114205210B

电话咨询
读内容
搜本页
回顶部