一种微服务管理方法和装置
技术领域
本发明属于计算机软件领域,涉及微服务的管理技术。
背景技术
微服务(Microservice Architecture)是一种新兴的软件架构风格,它通过开发一些微小服务的方式来开发一个独立完整的应用系统。每个微服务围绕业务功能进行构建,并且能够通过自动化部署机制进行独立部署,运行在自己的进程中,微服务之间采用轻量级的通信机制。这些微服务可以使用不同的编程语言来编写,可以使用不同的数据存储技术,并保持最低限度的集中式管理。
大规模微服务系统涉及成千上万个微服务。由于微服务间可能存在调用依赖关系,因此任何组件出错都可能导致大量的用户不能正常访问。如何管理海量的微服务,保障微服务的服务质量成为了一个难题。
目前常采用根据应用拓扑来管理微服务,其具体方式为,跟踪微服务之间的调用关系得到应用拓扑,进而根据应用拓扑定位服务故障点,但是如果微服务不经过良好的组织管理,应用拓扑可能是非常复杂的网状关系,在微服务数量巨大的情况下,无法根据应用拓扑定位服务故障点,也无法根据应用拓扑确定故障微服务的影响范围,造成无法较好的管理海量微服务。
因此如何有效的管理微服务,精准确定故障微服务的影响范围,成为亟待解决的问题。
发明内容
本发明的目的在于提供一种有效并精准确定故障微服务影响范围的技术手段,以达到对微服务有效管理的目的。
为了实现上述目的,本发明提供一种微服务管理方法,所述方法包含:
获取微服务资源管理数据,所述微服务资源管理数据包含微服务供销数据、微服务编排数据;
获取各微服务的性能数据和故障数据;
根据预设的微服务调用阈值,结合所述各微服务的性能数据和故障数据,生成对应的各微服务故障信息;
根据所述各微服务故障信息结合所述微服务的资源管理数据,确定所述各微服务故障信息的影响范围。
进一步的:
所述微服务供销数据包含微服务提供方信息和微服务订购方信息;
所述微服务编排数据包含微服务所提供的服务信息和服务流信息。
更进一步的:
所述各微服务的性能数据为微服务的调用时间、调用时延、调用次数、调用成功次数;
所述各微服务的故障数据为微服务故障发生时间和故障内容。
具体的,所述根据预设的微服务调用阈值,结合所述各微服务的性能数据和故障数据,生成对应的各微服务故障信息的方法具体为:
预设微服务调用成功率阈值和调用时延阈值;
根据所述微服务的调用时间和调用时延获得该微服务平均调用时延,根据所述微服务的调用次数和调用成功次数获得该微服务调用成功率;
当微服务调用成功率或调用时延超过所述微服务调用成功率阈值和调用时延阈值时,根据微服务调用时间结合所述微服务编排数据生成微服务故障信息。
具体的,所述根据所述各微服务故障信息结合所述微服务的资源管理数据,确定所述各微服务故障信息的影响范围的方法具体为:
根据所述微服务故障信息获取所述微服务编排数据中的服务流信息;
根据所述服务流信息获取所述微服务所提供的服务信息;
根据所述微服务所提供的服务信息获取所述微服务订购方信息;
确定所述微服务订购方信息为该微服务故障信息的影响范围。
本发明还提供一种微服务管理装置,所述装置包含:
微服务资源管理单元,用于获取并管理微服务资源管理数据,所述微服务资源管理数据包含微服务供销数据、微服务编排数据;
数据采集单元,用于获取各微服务的性能数据和故障数据;
故障信息生成单元,用于根据预设的微服务调用阈值,结合所述数据采集单元采集的各微服务的性能数据和故障数据,生成对应的各微服务故障信息;
影响分析单元,用于根据所述故障信息生成单元生成的各微服务故障信息和数据采集单元采集的故障数据结合所述微服务资源管理单元获取的微服务资源管理数据,确定所述各微服务故障信息的影响范围。
具体的,所述微服务资源管理单元进一步包含:
微服务供销数据管理模块,用于获取并管理所述微服务供销数据包含的微服务提供方信息和微服务订购方信息;
微服务编排数据管理模块,用于获取并管理所述微服务编排数据包含的微服务所提供的服务信息和服务流信息。
具体的,所述数据采集元进一步包含:
性能数据采集模块,用于采集所述各微服务的调用时间、调用时延、调用次数、调用成功次数;
故障数据采集模块,用于采集所述各微服务的故障发生时间和故障内容。
具体的,所述故障信息生成单元进一步包含:
阈值设定模块,用于预设微服务调用成功率阈值和调用时延阈值;
计算模块,用于根据所述微服务的调用时间和调用时延获得该微服务平均调用时延,根据所述微服务的调用次数和调用成功此数获得该微服务调用成功率;
故障信息生成模块,用于当所述计算模块计算的微服务调用成功率或调用时延超过所述阈值设定模块设定的微服务调用成功率阈值和调用时延阈值时,根据微服务调用时间结合所述微服务编排数据生成微服务故障信息。
具体的,所述影响分析单元进一步包含:
服务流信息获取模块,用于根据所述故障信息生成模块生成的微服务故障信息和所述数据采集单元采集的故障数据获取所述微服务编排数据中的服务流信息;
服务信息获取模块,用于根据所述服务流信息获取模块获取的服务流信息获取所述微服务所提供的服务信息;
订购信息获取模块,根据所述服务信息获取模块获取的微服务所提供的服务信息获取所述微服务订购方信息;
影响范围确定模块,用于根据所述订购信息获取模块获取的所述微服务订购方信息为该微服务故障信息的影响范围。
本发明公开了一种微服务管理方法和装置,通过微服务注册的订购信息和编排信息,获得微服务、客户、服务流的对应关系,根据采集获取的微服务性能数据和故障数据,找到故障微服务对应的服务流,进而获取服务流对应的客户,精准定位故障影响的范围。该技术不需要获得复杂的微服务网状结构即可简单精确地定位故障点,大大缩小了微服务的管理成本,提高了管理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种微服务管理方法的方法流程示意图;
图2为本申请实施例二提供的方法流程图;
图3为本申请实施例三提供的方法流程图;
图4为本申请实施例五一种微服务管理装置的结构示意图;
图5为本申请实施例六提供的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,是发明一种微服务管理方法的方法流程图,本实例包括如下步骤:
步骤S01:获取微服务资源管理数据,所述微服务资源管理数据包含微服务供销数据、微服务编排数据。
所述微服务供销数据包含微服务提供方信息和微服务订购方信息。
提供方信息包含提供方名称和服务标识,订购方信息包含订购的客户名和订购的服务标识。
所述微服务编排数据包含微服务所提供的服务信息和服务流信息。
微服务中的某些服务可以是其他服务按顺序组成的服务流;且服务流中也可以再包含服务和其他的服务流,这些微服务编排数据,可以从微服务编排器上获得,可以直接反应服务、服务流的对应关系。
步骤S02:获取各微服务的性能数据和故障数据。
性能数据是反应微服务性能的数据,包含服务标识、统计开始时间、统计结束时间、该服务的调用次数和调用成功次数等
故障数据是反应微服务故障的数据,包含服务标识、发生时间、故障标题、故障正文等内容。
步骤S03:根据预设的微服务调用阈值,结合所述各微服务的性能数据和故障数据,生成对应的各微服务故障信息。
在实际应用中,微服务本身并未发出故障信息,但调用不成功的概率较高,可能存在故障,因此根据微服务的调用成功情况来评估其是否发生了故障,保证微服务故障判定的准确性。
步骤S04:根据所述各微服务故障信息结合所述微服务的资源管理数据,确定所述各微服务故障信息的影响范围。
通过微服务的服务标识,可以获得该服务对应的服务流,通过服务流中的服务,可以获得订购这些服务的客户,进而确定这些客户为微服务故障的影响范围。
可见,本发明实施例公开了一种微服务管理方法,通过获取微服务的供销数据和编排数据,结合获取的微服务性能数据和故障数据,找到微服务流的关系,根据微服务流的关系确定哪些微服务受到了故障的影响。通过本发明可以不用获取微服务的应用拓扑关系即可确定故障微服务的影响范围,可以更加有效的管理微服务IT系统。
为了更好的说明本发明,给出实施例二,详细阐述生成各微服务故障信息的方法,如图2所示。
步骤S201:预设微服务调用成功率阈值和调用时延阈值。
根据经验设置调用成功阈值和调用时延阈值。
调用成功阈值和调用时延阈值也可以根据实际情况进行调整,以准确的反应微服务的故障情况。
步骤S202:根据所述微服务的调用时间和调用时延获得该微服务平均调用时延,根据所述微服务的调用次数和调用成功次数获得该微服务调用成功率。
平均调用时延为各次调用时延平均获得;
调用成功率通过调用成功次数/调用次数获得。
步骤S203:当微服务调用成功率或调用时延超过所述微服务调用成功率阈值和调用时延阈值时,根据微服务调用时间结合所述微服务编排数据生成微服务故障信息。
本方法是除了根据微服务自身上报的故障信息外,还根据微服务的调用成功率来判定微服务是否发生故障,进而更加准确的确定故障发生时间和影响范围。
为了更好的说明本发明,给出实施例三,详细阐述生成各微服务故障信息的方法,如图3所示。
步骤S301:根据所述微服务故障信息获取所述微服务编排数据中的服务流信息。
步骤S302:根据所述服务流信息获取所述微服务所提供的服务信息。
步骤S303:根据所述微服务所提供的服务信息获取所述微服务订购方信息。
步骤S304:确定所述微服务订购方信息为该微服务故障信息的影响范围。
通过本技术方案,便于通过微服务故障信息获取这个微服务的编排数据中的服务流信息,确定为服务流中包含哪些服务信息,进而获得服务提供方和订购方信息,进而确定这些订购方即为该故障信息影响的范围。该方法简便快速,无需知道整个微服务的拓扑信息即可作出判定,节约了微服务的管理成本,提高了效率。
为了更好的阐述本发明,结合实例给出本发明的实施例四,解释说明确定微服务故障范围的方法步骤。
获取微服务的资源管理数据,包含微服务供销数据和微服务编排数据,微服务供销数据如表1所示,主要为客户的订购信息:
表1微服务供销数据
客户名
服务标识
客户A
复合服务1
客户B
复合服务2
客户C
复合服务3
……
……
一般可以从编排器采集微获取服务的编排数据,服务流中也可以包含其他服务流,如表2和表3所示:表2表示某些服务是由其他服务顺序组成的服务流;表3表示服务流中包含的服务。
表2微服务编排数据-服务与流的对应关系
服务标识
流标识
复合服务1
流1
复合服务2
流2
复合服务3
流3
……
……
表3微服务编排数据-服务与流的对应关系
采集各个具体服务的性能数据,如表4所示:
表4采集的性能数据
服务标识
统计开始时间
统计结束时间
调用次数
调用成功次数
平均调用时延(秒)
……
……
……
……
……
……
基础服务2
20190425 1600
20190425 1605
100
80
3
……
……
……
……
……
……
采集各个具体服务的故障数据,如表5所示:
表5采集的故障数据
服务标识
发生时间
故障标题
故障正文
基础服务3
20190425 1602
进程吊死
……
……
……
……
……
可根据经验设定各个具体服务的调用成功率门限和调用时延门限;该设定值可以根据实际情况进行调整,已达到最好的效果。
例如,可以将基础服务2的调用成功率门限为90%;调用时延门限为5秒。
当表4数据某个具体服务的(调用成功次数/调用次数)<调用成功率门限或平均调用时延<调用时延门限,则生成对应的故障信息。所述的故障信息可以包含服务名称、发生的时间、故障的标题、故障正文等信息。
表4中基础服务2在20190425-1600至20190425-1605的调用成功率门限为80/100=80%<90%,因此生成新的故障数据,如表6所示。
表6新生成的故障数据
服务标识
发生时间
故障标题
故障正文
基础服务3
20190425-1605
调用失败
……
……
……
……
……
接收到新的表5数据或者产生新的表6数据时,则对故障数据进行分析:
1)使用服务标识从表3中找到该服务所属的流标识;
上述服务标识为:基础服务2、基础服务3,则使用“基础服务2”从表3中找到所属的流标识为:流1、流2;使用“基础服务3”从表3中找到所属的流标识为:流1。
综上所述可以找到的流标识为:流1、流2。
2)使用流标识从表2找到流对应的服务标识;
使用“流1”从表2找到流对应的服务标识为:复合服务1;使用“流2”从表2找到流对应的服务标识为:复合服务2。
3)使用新的服务标识从表1中找到订购它的客户名;
使用“复合服务1”从表1中找到订购它的客户名:客户A
使用“复合服务2”从表1中找到订购它的客户名:客户B。
4)使用新的服务标识从表3中找到所属的流标识;
使用“复合服务1”从表3中找到所属的流标识为:流3
使用“流3”从表2找到流对应的服务标识为:复合服务3
使用“复合服务3”从表1中找到订购它的客户名:客户C。
至此再也找不到新的流标识,也找不到新的客户名
5)对外输出找到具体服务故障影响到的客户:客户A、客户B、客户C。
综上所述,通过本方法可以清晰简明并且迅速的定位到微服务影响的客户范围,而不需要复杂的微服务拓扑关系。
本发明还公开了一种微服务管理装置,先给出本发明的实施例五,如图4所示,用以说明该装置的结构特点。
该装置包括:
微服务资源管理单元1,用于获取并管理微服务资源管理数据,所述微服务资源管理数据包含微服务供销数据、微服务编排数据。
所述微服务供销数据包含微服务提供方信息和微服务订购方信息。
所述微服务编排数据包含微服务所提供的服务信息和服务流信息。
数据采集单元2,用于获取各微服务的性能数据和故障数据。
所述各微服务的性能数据为微服务的调用时间、调用时延、调用次数、调用成功次数。
所述各微服务的故障数据为微服务故障发生时间和故障内容。
故障信息生成单元3,用于根据预设的微服务调用阈值,结合所述数据采集单元采集的各微服务的性能数据和故障数据,生成对应的各微服务故障信息。
影响分析单元4,用于根据所述故障信息生成单元生成的各微服务故障信息和数据采集单元采集的故障数据结合所述微服务资源管理单元获取的微服务资源管理数据,确定所述各微服务故障信息的影响范围。
为了更好的说明本装置各部分的结构和工作方式,给出本发明的实施例六,如图5所示。
具体的,微服务资源管理单元1进一步包含:
微服务供销数据管理模块11,用于获取并管理所述微服务供销数据包含的微服务提供方信息和微服务订购方信息。
微服务编排数据管理模块12,用于获取并管理所述微服务编排数据包含的微服务所提供的服务信息和服务流信息。
数据采集单元2进一步包含:
性能数据采集模块21,用于采集所述各微服务的调用时间、调用时延、调用次数、调用成功次数。
故障数据采集模块22,用于采集所述各微服务的故障发生时间和故障内容。
故障信息生成单元3进一步包含:
阈值设定模块31,用于预设微服务调用成功率阈值和调用时延阈值。
计算模块32,用于根据所述微服务的调用时间和调用时延获得该微服务平均调用时延,根据所述微服务的调用次数和调用成功此数获得该微服务调用成功率。
故障信息生成模块33,用于当所述计算模块计算的微服务调用成功率或调用时延超过所述阈值设定模块设定的微服务调用成功率阈值和调用时延阈值时,根据微服务调用时间结合所述微服务编排数据生成微服务故障信息。
影响分析单元4进一步包含:
服务流信息获取模块41,用于根据所述故障信息生成模块生成的微服务故障信息和所述数据采集单元采集的故障数据获取所述微服务编排数据中的服务流信息。
服务信息获取模块42,用于根据所述服务流信息获取模块获取的服务流信息获取所述微服务所提供的服务信息。
订购信息获取模块43,根据所述服务信息获取模块获取的微服务所提供的服务信息获取所述微服务订购方信息。
影响范围确定模块44,用于根据所述订购信息获取模块获取的所述微服务订购方信息为该微服务故障信息的影响范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例中的对应过程,可以参考前述方法的具体工作过程,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例能够在除了这里图示的以外的顺序实施。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。