CN114237666A - 一种服务降级方法及装置、存储介质 - Google Patents

一种服务降级方法及装置、存储介质 Download PDF

Info

Publication number
CN114237666A
CN114237666A CN202111543479.XA CN202111543479A CN114237666A CN 114237666 A CN114237666 A CN 114237666A CN 202111543479 A CN202111543479 A CN 202111543479A CN 114237666 A CN114237666 A CN 114237666A
Authority
CN
China
Prior art keywords
service
micro
degradation
memory
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111543479.XA
Other languages
English (en)
Inventor
吴昊
徐峰
姜晗
孟德鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202111543479.XA priority Critical patent/CN114237666A/zh
Publication of CN114237666A publication Critical patent/CN114237666A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种服务降级方法及装置、存储介质,包括:在接收到客户端传输的微服务访问指令的情况下,确定与访问指令中的访问信息相关的多个微服务;获取多个微服务之间的服务调用关系;确定多个微服务对应的多个内存信息;根据服务调用关系和多个内存信息,确定多个服务降级优先级,并按照多个服务降级优先级执行微服务降级操作。

Description

一种服务降级方法及装置、存储介质
技术领域
本申请涉及服务降级技术领域,尤其涉及一种服务降级方法及装置、存储介质。
背景技术
随着互联网技术的发展,微服务系统常常会出访问高峰,面对高并发、高流量等访问量较大时或当系统中某上游微服务节点出现异常时,此时微服务系统就需要采用降级策略,以保证微服务系统的正常运行。
现有技术中,微服务系统采用限流自动化降级策略或者超时自动化降级策略时,容易出现微服务系统阻塞,甚至导致微服务系统崩溃,如此,若与重要的服务相关联的强依赖的某个服务被降级,会导致该服务不可使用,从而降低了微服务访问时的访问效率。
发明内容
为解决上述技术问题,本申请实施例期望提供一种服务降级方法及装置、存储介质,能够提高微服务访问时的访问效率。
本申请的技术方案是这样实现的:
本申请实施例提供一种服务降级方法,包括:
在接收到客户端传输的微服务访问指令的情况下,确定与所述访问指令中的访问信息相关的多个微服务;
获取所述多个微服务之间的服务调用关系;
确定所述多个微服务对应的多个内存信息;
根据所述服务调用关系和所述多个内存信息,确定所述多个服务降级优先级,并按照所述多个服务降级优先级执行微服务降级操作。
本申请实施例提供了一种服务降级装置,所述装置包括:
确定单元,用于在接收到客户端传输的微服务访问指令的情况下,确定与所述访问指令中的访问信息相关的多个微服务;确定所述多个微服务对应的多个内存信息;根据服务调用关系和所述多个内存信息,确定所述多个服务降级优先级;
获取单元,用于获取所述多个微服务之间的所述服务调用关系;
执行单元,用于按照所述多个服务降级优先级执行微服务降级操作。
本申请实施例提供了一种服务降级装置,所述装置包括:
存储器、处理器和通信总线,所述存储器通过所述通信总线与所述处理器进行通信,所述存储器存储所述处理器可执行的服务降级的程序,当所述服务降级的程序被执行时,通过所述处理器执行上述所述的服务降级方法。
本申请实施例提供了一种存储介质,其上存储有计算机程序,应用于服务降级装置,其特征在于,该计算机程序被处理器执行时实现上述所述的服务降级方法。
本申请实施例提供了一种服务降级方法及装置、存储介质,服务降级方法包括:在接收到客户端传输的微服务访问指令的情况下,确定与访问指令中的访问信息相关的多个微服务;获取多个微服务之间的服务调用关系;确定多个微服务对应的多个内存信息;根据服务调用关系和多个内存信息,确定多个服务降级优先级,并按照多个服务降级优先级执行微服务降级操作。采用上述方法实现方案,服务降级装置通过获取多个微服务之间的服务调用关系,根据多个微服务对应的多个内存信息和服务调用关系确定多个微服务对应的多个服务降级优先级,以根据多个服务降级优先级对多个服务降级优先级执行微服务降级操作,即对除核心微服务和与核心微服务关联的关联微服务外的剩余微服务先执行降级操作,而剩余微服务与核心微服务之间的依赖性较弱,在对剩余微服务执行降级操作时不会影响到核心微服务,使得可以正常执行微服务访问指令对应的访问过程,提高了微服务访问时的访问效率。
附图说明
图1为本申请实施例提供的一种服务降级方法流程图;
图2为本申请实施例提供的一种示例性的微服务调用系统框图;
图3为本申请实施例提供的一种示例性的微服务注册框图;
图4为本申请实施例提供的一种示例性的面向微服务关联的降级系统;
图5为本申请实施例提供的一种示例性的服务降级方法流程图;
图6为本申请实施例提供的一种示例性的系统读写能力对比示意图;
图7为本申请实施例提供的一种示例性的系统可用性对比示意图;
图8为本申请实施例提供的一种示例性的系统负载情况对比示意图;
图9为本申请实施例提供的一种示例性的微服务分级降级示意图;
图10为本申请实施例提供的一种服务降级装置的组成结构示意图一;
图11为本申请实施例提供的一种服务降级装置的组成结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供了一种服务降级方法,图1为本申请实施例提供的一种服务降级方法流程图一,如图1所示,服务降级方法可以包括:
S101、在接收到客户端传输的微服务访问指令的情况下,确定与访问指令中的访问信息相关的多个微服务。
本申请实施例提供的一种服务降级方法适用于对多个微服务进行微服务降级的场景下。
在本申请实施例中,服务降级装置可以以各种形式来实施。例如,本申请中描述的服务降级装置可以包括诸如手机、照相机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等装置,以及诸如数字TV、台式计算机等装置。
在本申请实施例中,多个微服务为服务降级装置中的部分微服务,在服务降级装置中的任一个微服务接收到微服务访问指令的情况下,就可以执行本申请实施例中提出的微服务降级方法。
在本申请实施例中,微服务访问指令即为客户端访问微服务的指令。
在本申请实施例中,微服务访问指令的数量可以为一个;微服务访问指令的数量也可以为两个;微服务访问指令的数量还可以为多个;具体的微服务访问指令的数量可以根据实际情况进行确定,本申请实施例对此不作限定。
S102、获取多个微服务之间的服务调用关系。
在本申请实施例中,服务降级装置确定与访问指令中的访问信息相关的多个微服务之后,服务降级装置就可以获取多个微服务之间的服务调用关系。
在本申请实施例中,服务调用关系可以为微服务关联矩阵表;服务调用关系也可以为存储的与多个微服务后相关的后相关关联微服务之间的键值对;服务调用关系还可以为其他的多个微服务与后相关关联微服务之间的关系表现形式;具体的服务调用关系可以根据实际情况进行确定,本申请实施例对此不作限定。
示例性的,若服务调用关系可以为微服务关联矩阵表,则微服务关联矩阵表如表1所示。
表1微服务关联矩阵表
Figure BDA0003415001330000041
Figure BDA0003415001330000051
需要说明的是,M1、M2、M3、M4、M5、M6、M7、M8、M9、M10分别为10个微服务。
需要说明的是,第二行中的M1与第三列M2对应的值为1,即为:M2为M1的后向关联的微服务;第二行中的M1与第四列M3对应的值为1,即为:M3为M1的后向关联的微服务;第二行中的M1与第五列M4对应的值为1,即为:M4为M1的后向关联的微服务;第二行中的M1与第六列M5对应的值为1,即为:M5为M1的后向关联的微服务;第二行中的M1与第七列M6对应的值为1,即为:M6为M1的后向关联的微服务;第二行中的M1与第八列M7对应的值为1,即为:M7为M1的后向关联的微服务;第二行中的M1与第九列M8对应的值为1,即为:M8为M1的后向关联的微服务;第二行中的M1与第十列M9对应的值为1,即为:M9为M1的后向关联的微服务;第二行中的M1与第十一列M10对应的值为1,即为:M10为M1的后向关联的微服务;第三行中的M2与第四列M3对应的值、第三行中的M2与第五列M4对应的值、第三行中的M2与第六列M5对应的值、第三行中的M2与第九列M8对应的值、第三行中的M2与第十列M9对应的值、第三行中的M2与第十一列M10对应的值都为1,即:M3、M4、M5、M6、M7、M8、M9、M10分别为M2的后向关联的微服务;第四行中的M3与第五列M4对应的值为1,即M4为M3的后向关联的微服务;第六行中的M5与第七列M6对应的值、第六行中的M5与第八列M7对应的值、第六行中的M5与第九列M8对应的值、第六行中的M5与第十列M9对应的值、第六行中的M5与第十一列M10对应的值都为1,即M6、M7、M8、M9、M10都为M5的后向关联的微服务;第七行中的M6与第八列M7对应的值、第七行中的M6与第九列M8对应的值、第七行中的M6与第十列M9对应的值、第七行中的M6与第十一列M10对应的值都为1,即M7、M8、M9、M10都为M6的后向关联的微服务;第八行中的M7与第九列M8对应的值、第八行中的M7与第十列M9对应的值、第八行中的M7与第十一列M10对应的值都为1,即M8、M9、M10都为M7的后向关联的微服务;第十行中的M9与第十一列M10对应的值为1,即M10为M9的后向关联的微服务。
还需要说明的是,M2为M1的后向关联的微服务可以为:在获取访问信息的过程中M1微服务会调用M2微服务。
在本申请实施例中,服务降级装置获取多个微服务之间的服务调用关系之前,服务降级装置还会从微服务注册中心获取第一微服务对应的第一后向关联微服务;服务降级装置建立第一微服务和第一后向关联微服务之间的后向关联关系。相应的,服务降级装置获取多个微服务之间的服务调用关系的过程,包括:服务降级装置从后向关联关系中获取服务调用关系。
需要说明的是,第一微服务为微服务注册中心所包含的全部的微服务;第一微服务包括多个微服务。
在本申请实施例中,服务降级装置中的每一个微服务都配置有Restful(网络应用程序的设计风格和开发方式)应用程序接口(Application Programming Interface,API),在每一个微服务构建时把与该微服务所关联的服务都写入Restful API中。示例性的,如图2所示,共有m个微服务,每个微服务用M表示,则第m个微服务可以表示为Mm。不同的微服务处于不同的业务模块,具体的,业务模块1包括M1和M2这两个微服务;业务模块2包括M3和M4这两个微服务;业务模块3包括M3和M4这两个微服务;业务模块4包括M7和M8这两个微服务;业务模块5包括M9和M10这两个微服务…;微服务M1中的Restful API中包括M2、M3、M4、M5、M6、M7、M8、M9、M10等后向关联微服务信息;微服务M2中的Restful API中包括M3、M4、M5、M6、M7、M8、M9、M10等后向关联微服务信息;微服务M3中的Restful API中包括M4等后向关联微服务信息;微服务M5中的Restful API中包括M6、M7、M8、M9、M10等后向关联微服务信息;微服务M6中的Restful API中包括M7、M8、M9、M10等后向关联微服务信息;微服务M7中的Restful API中包括M8、M9、M10等后向关联微服务信息;微服务M9中的Restful API中包括M10等后向关联微服务信息。
具体的,在户请求业务模块1中的微服务M1的情况下,微服务M1会调用微服务M2,(即微服务M2为微服务M1的后向关联微服务,微服务M1可以被称为M2的前向关联微服务)。
示例性的,如图3所示,在微服务使用之前,需要先将微服务的信息注册至服务注册中心(包括服务注册中心1、服务注册中心2和服务注册中心3),微服务3可以将对应的注册信息(包括微服务系统服务名、服务的网络地址以及该服务的关联服务名及网络地址;并利用键值对形式保存该微服务的后向关联服务(包含后续关联微服的服务的地址))注册至服务注册中心2,微服务4可以将对应的注册信息注册至服务注册中心3,通过将服务注册中心1、服务注册中心2和服务注册中心3中的注册信息进行同步,服务注册中心1中也包含了微服务3的注册信息和微服务4的注册信息,服务降级装置可以从微服务注册中心1获取微服务1对应的后向关联微服务(服务列表)以及微服务2对应的后向关联微服务(服务列表),微服务1也可以直接调用(服务调用)微服务3;微服务2也可以直接调用(服务调用)微服务4。
需要说明的是,服务的网络地址包含端口号与网络地址。
在本申请实施例中,服务降级装置可以根据注册的微服务和与该微服务对应的后向关联微服务构建键值对,设置微服务关联矩阵表,从而得到第一微服务和第一后向关联微服务之间的后向关联关系;以根据键值对填充微服务关联矩阵表中的元素为1,剩余元素设置为0。
需要说明的是,根据图2中的M1、M2微服务之间的关联关系,可以设置表1中第二行中的M1与第三列M2对应的值为1,第三行中的M2与第二列M1对应的值为0,表示微服务M1是微服务M2的前向关联微服务,而微服务M2不属于微服务M1的前向关联服务,依此类推,就可以构建得到如表1所示的微服务关联矩阵表。
S103、确定多个微服务对应的多个内存信息。
在本申请实施例中,服务降级装置可以先获取多个微服务之间的服务调用关系,之后服务降级装置就确定多个微服务对应的多个内存信息;服务降级装置也可以先确定多个微服务对应的多个内存信息,之后服务降级装置就获取多个微服务之间的服务调用关系;服务降级装置还可以在获取多个微服务之间的服务调用关系的同时,服务降级装置也确定多个微服务对应的多个内存信息;具体的服务降级装置获取多个微服务之间的服务调用关系和确定多个微服务对应的多个内存信息的顺序可以根据实际情况进行确定,本申请实施例对此不作限定。
需要说明的是,多个微服务与多个内存信息一一对应,具体的,一个微服务对应一个内存信息。
在本申请实施例中,多个内存信息可以为多个微服务对应的多个使用内存信息;多个内存信息还可以为多个微服务对应的多个剩余内存信息;具体的可以根据实际情况进行确定,本申请实施例对此不作限定。
S104、根据服务调用关系和多个内存信息,确定多个服务降级优先级,并按照多个服务降级优先级执行微服务降级操作。
在本申请实施例中,服务降级装置确定多个微服务对应的多个内存信息之后,服务降级装置就可以根据服务调用关系和多个内存信息,确定多个服务降级优先级,并按照多个服务降级优先级执行微服务降级操作。
在本申请实施例中,多个微服务与多个服务降级优先级一一对应,具体的,一个微服务对应一个服务降级优先级。
需要说明的是,服务降级优先级包括:缓存降级、缓存降级和写降级、缓存降级写降级和读降级、缓存降级写降级读降级和熔断。
在本申请实施例中,服务降级装置根据服务调用关系和多个内存信息,确定多个服务降级优先级的过程,包括:服务降级装置根据多个内存信息确定多个微服务的总内存;服务降级装置分别确定多个内存信息和总内存之间的比值,得到多个内存占比;服务降级装置根据多个内存占比和服务调用关系,确定多个服务降级优先级。
在本申请实施例中,多个内存信息中的每一个内存信息包括:堆内存(heap),线程堆栈申请的内存(thread),整个微服务类大小(class)占用的内存(jar包)以及其他内存占用(other)包括垃圾回收、编译等占用的内存。
在本申请实施例中,服务降级装置分别确定多个内存信息和总内存之间的比值,得到多个内存占比的方式如公式(1)所示:
Figure BDA0003415001330000091
需要说明的是,MM(i)为第i个微服务的内存占比,M(i,heap)为第i个微服务的堆内存;M(i,thread)为第i个微服务的线程堆栈申请的内存;M(i,class)为第i个微服务的类大小内存;M(i,other)为第i个微服务的其他内存,M(i,heap)+M(i,thread)+M(i,class)+M(i,other)为第i个微服务的内存信息。
Figure BDA0003415001330000092
为总内存。
在本申请实施例中,服务降级装置根据多个内存占比和服务调用关系,确定多个服务降级优先级的过程,包括:服务降级装置确定多个微服务中的核心微服务;并在服务调用关系中,确定多个微服务中的每一个微服务与核心微服务之间的关联程度,得到多个关联程度值;服务降级装置获取内存占比系数和关联程度系数;服务降级装置根据多个内存占比、内存占比系数、关联程度系数和多个关联程度值,确定多个微服务对应的多个服务降级优先级。
在本申请实施例中,服务降级装置根据多个内存占比、内存占比系数、关联程度系数和多个关联程度值,确定多个微服务对应的多个服务降级优先级的方式,如公式(2)所示:
F(i)=μ1*MM(i)+μ2*MR(i) (2)
其中,内存占比系数μ1与关联程度系数μ2之和为1,μ1与μ2都在0到1之间。MR(i)为第i个微服务的关联程度值。计算得到的服务降级优先级F(i)的值越大,降级的优先级越小;反之值越小,越先为需要降级的微服务。
在本申请实施例中,核心微服务的数量为多个,服务降级装置在服务调用关系中,确定多个微服务中的每一个微服务与核心微服务之间的关联程度,得到多个关联程度值的过程,包括:服务降级装置根据服务调用关系,从多个核心微服务中确定出每一个微服务对应的每一组目标核心微服务的第一数量,得到多个第一数量;服务降级装置根据多个第一数量和核心微服务的数量确定出多个关联程度值。
在本申请实施例中,服务降级装置根据多个第一数量和核心微服务的数量确定出多个关联程度值的过程如公式(3)所示:
Figure BDA0003415001330000101
在本申请实施例中,服务降级装置利用二八原则,将核心微服务数量设置为0.2*m(其中m为多个微服务的数量)。利用公式3可以得到第i个微服务与核心服务的关联程度。其中,x表示为与核心服务关联的数量,MR(i)表示为第i个微服务与核心服务的关系紧密程度。
需要说明的是,MR(i)越接近1,第i个微服务与核心微服务的关系越紧密,关联程度越高,反之关联程度越小。
在本申请实施例中,服务降级装置按照多个服务降级优先级执行微服务降级操作的过程,包括:服务降级装置从多个服务降级优先级中确定出剩余微服务对应的剩余服务优先级;服务降级装置从多个内存占比中获取剩余微服务对应的第一内存占比;服务降级装置根据预设内存占比与预设降级等级之间的对应关系、第一内存占比和剩余服务优先级,对剩余微服务执行对应等级的降级操作。
需要说明的是,剩余微服务为多个微服务中除核心微服务和关联微服务外的微服务。关联微服务为与核心微服务后向关联的微服务。
在本申请实施例中,服务降级装置从多个服务降级优先级中确定出剩余微服务对应的剩余服务优先级的过程,包括:服务降级装置从多个服务降级优先级中确定出核心微服务对应的多个第一服务优先级;服务降级装置从多个服务降级优先级中确定出关联微服务对应的第二服务优先级;服务降级装置在多个服务降级优先级中去除多个第一服务优先级和第二服务优先级,得到剩余服务优先级。
在本申请实施例中,服务降级装置根据微服务关联矩阵表,将核心微服务作为列元数,可以得到每列的1的个数,及为每个核心微服务后向关联的关联微服务的个数,则设遍历微服务关联矩阵可以得到的核心微服务所对应的关联微服务数量为Z,则微服务核心微服务的相关联的微服务服务数量集合可以表示为
Figure BDA0003415001330000113
多个核心微服务之间的关联微服务存在这依赖同一个服务的情况,因此存在关联微服务。
需要说明的是,重复的关联微服务的数量可以为ZD,第i个核心微服务yi对应的关联服务的数量如公式(4)所示:
Figure BDA0003415001330000111
多个微服务的数量为m,则可以降级的微服务(剩余微服务)的数量如公式(5)所示:
Figure BDA0003415001330000112
在本申请实施例中,利用二八原则完成对微服务核心微服务进行选取后,然后根据公式4可以得到关联微服务的数量,利用公式5得到多个微服务中可以降级的微服务服务的数量,通过构建微服务系统中可以降级的微服务顺序集合,以对可以降级的微服务顺序集合中的微服务执行微服务降级操作。
需要说明的是,微服务降级顺序集合的构建步骤包括:先利用二八原则划分微服务核心微服务与非核心微服务,并把微服务的核心微服务保存在一个大小为
Figure BDA0003415001330000114
的数组Array1中。然后,利用构建关联矩阵的方法构建基于微服务核心微服务的关联矩阵,可以得到核心微服务的关联微服务,并将关联微服务保存在大小为的数组Array2中。之后,将微服务系统中的不包含核心微服务与关联微服务的剩余微服务保存在大小为j的数组Array3中。再之后,分别再将三个数组Array1-Array3中的各个服务按照对应的服务降级优先级F(i)分别从低到高在这个三个数组中排序;最后,把三个数组中的各个元素按照Array3到Array1的顺序合并,保存在一个完整的按照顺序排列的且每个array中数据下降的一个大链表(list)中,此时整个大链表中对应的服务降级顺序集合list为
Figure BDA0003415001330000121
三个部分,利用如图4所示的服务降级装置(包含服务注册、服务列表、性能检测中心、服务降级、服务状态监测中心等模块)执行服务降级方法的执行流程图如图5所示:
S50、服务降级装置在接收到客户端传输的微服务访问指令的情况下,确定与访问指令中的访问信息相关的多个微服务。
S51、服务降级装置获取多个微服务之间的服务调用关系;并确定多个微服务对应的多个内存信息。
S52、服务降级装置根据多个内存信息确定多个微服务的总内存;并分别确定多个内存信息和总内存之间的比值,得到多个内存占比。
S53、服务降级装置确定多个微服务中的核心微服务;并在服务调用关系中,根据服务调用关系,从多个核心微服务中确定出每一个微服务对应的每一组目标核心微服务的第一数量,得到多个第一数量。
S54、服务降级装置根据多个第一数量和核心微服务的数量确定出多个关联程度值。
S55、服务降级装置获取内存占比系数和关联程度系数;并根据多个内存占比、内存占比系数、关联程度系数和多个关联程度值,确定多个微服务对应的多个服务降级优先级。
S56、服务降级装置从多个服务降级优先级中确定出核心微服务对应的多个第一服务优先级。
S57、服务降级装置从多个服务降级优先级中确定出关联微服务对应的第二服务优先级。
S58、服务降级装置在多个服务降级优先级中去除多个第一服务优先级和第二服务优先级,得到剩余服务优先级。
需要说明的是,剩余微服务为多个微服务中除核心微服务和与核心微服务后向关联的关联微服务外的微服务。
S59、服务降级装置从多个内存占比中获取剩余微服务对应的第一内存占比;并根据预设内存占比与预设降级等级之间的对应关系、第一内存占比和剩余服务优先级,对剩余微服务执行对应等级的降级操作。
示例性的,本申请实施例中的服务降级方法与自动超时降级算法、自动限流方法,在系统负载与读写能力进行对比情况如图6所示:其中,带方形的线条为本申请实施例中的服务降级方法对应的读写能力曲线;带三角形的线条为自动限流方法对应的读写能力曲线;带圆形的线条为自动超时降级算法对应的读写能力曲线。随着并发量(横轴为并发量,单位为万)的逐渐增加,本申请实施例中的服务降级方法、自动限流方法和自动超时降级算法对应的降级方式的读写能力逐渐下降,但是相同并发量时,本申请实施例中的服务降级方法对应的降级方式的读写能力高于自动限流方法和自动超时降级算法对应的降级方式的读写能力,优于自动限流方法和自动超时降级算法对应的降级方式。
示例性的,本申请实施例中的服务降级方法与自动超时降级算法、自动限流方法对应的系统可用性对比情况如图7所示:带方形的线条为本申请实施例中的服务降级方法对应的可用性曲线;带三角形的线条为自动限流方法对应的可用性曲线;带圆形的线条为自动超时降级算法对应的可用性曲线。随着并发量(横轴为并发量,单位为万)的逐渐增加,本申请实施例中的服务降级方法、自动限流方法和自动超时降级算法对应的降级方式的可用性逐渐下降,且自动限流方法和自动超时降级算法对应的降级方式的可用性下降更为剧烈,相同并发量时,本申请实施例中的服务降级方法对应的降级方式的可用性高于自动限流方法和自动超时降级算法对应的降级方式的可用性,优于自动限流方法和自动超时降级算法对应的降级方式。
示例性的,本申请实施例中的服务降级方法与自动超时降级算法、自动限流方法对应的负载情况对比图如图8所示:带方形的线条为本申请实施例中的服务降级方法对应的负载曲线;带三角形的线条为自动限流方法对应的负载曲线;带圆形的线条为自动超时降级算法对应的负载曲线。随着并发量(横轴为并发量,单位为万)的逐渐增加,本申请实施例中的服务降级方法、自动限流方法和自动超时降级算法对应的降级方式的负载情况逐渐上升,且自动限流方法和自动超时降级算法对应的降级方式的负载情况上升更为剧烈,相同并发量时,本申请实施例中的服务降级方法对应的降级方式的负载情况低于自动限流方法和自动超时降级算法对应的降级方式的负载情况,在并发量QPS达到12万,负载情况仍低于30%,优于自动限流方法和自动超时降级算法对应的降级方式。
本申请实施例中,预设降级等级包括四个等级,其中第一等级为缓存降级第二等级为缓存降级和写降级;第三等级为缓存降级、写降级和读降级;第四等级为缓存降级、写降级、读降级和熔断,具体的预设内存占比与预设降级等级之间的对应关系如图9所示:在剩余微服务的第一内存占比大于等于50%且第一内存占比小于60%(即蓝色风暴)的情况下,确定该剩余微服务的剩余服务优先级为缓存降级;在剩余微服务的第一内存占比大于等于60%且第一内存占比小于70%(即黄色风暴)的情况下,确定该剩余微服务的剩余服务优先级为缓存降级和写降级;在剩余微服务的第一内存占比大于等于70%且第一内存占比小于80%(即橙色风暴)的情况下,确定该剩余微服务的剩余服务优先级为缓存降级、写降级和读降级;在剩余微服务的第一内存占比大于等于80%(即红色风暴)的情况下,确定该剩余微服务的剩余服务优先级为缓存降级、写降级、读降级和熔断。
可以理解的是,服务降级装置通过获取多个微服务之间的服务调用关系,根据多个微服务对应的多个内存信息和服务调用关系确定多个微服务对应的多个服务降级优先级,以根据多个服务降级优先级对多个服务降级优先级执行微服务降级操作,即对除核心微服务和与核心微服务关联的关联微服务外的剩余微服务先执行降级操作,而剩余微服务与核心微服务之间的依赖性较弱,在对剩余微服务执行降级操作时不会影响到核心微服务,使得可以正常执行微服务访问指令对应的访问过程,提高了微服务访问时的访问效率。
基于上述实施例同一发明构思,本申请实施例提供了一种服务降级装置1,对应于一种服务降级方法;图10为本申请实施例提供的一种服务降级装置的组成结构示意图一,该服务降级装置1可以包括:
确定单元11,用于在接收到客户端传输的微服务访问指令的情况下,确定与所述访问指令中的访问信息相关的多个微服务;确定所述多个微服务对应的多个内存信息;根据服务调用关系和所述多个内存信息,确定所述多个服务降级优先级;
获取单元12,用于获取所述多个微服务之间的所述服务调用关系;
执行单元13,用于按照所述多个服务降级优先级执行微服务降级操作。
在本申请的一些实施例中,所述确定单元11,用于确定所述多个微服务对应的多个内存信息;根据所述服务调用关系和所述多个内存信息,确定所述多个服务降级优先级。
在本申请的一些实施例中,所述确定单元11,用于根据所述多个内存信息确定所述多个微服务的总内存;分别确定所述多个内存信息和总内存之间的比值,得到所述多个内存占比;根据所述多个内存占比和所述服务调用关系,确定所述多个服务降级优先级。
在本申请的一些实施例中,所述确定单元11,用于确定所述多个微服务中的核心微服务;并在所述服务调用关系中,确定所述多个微服务中的每一个微服务与所述核心微服务之间的关联程度,得到多个关联程度值;根据所述多个内存占比、所述内存占比系数、所述关联程度系数和所述多个关联程度值,确定所述多个微服务对应的多个服务降级优先级;
所述获取单元12,用于获取内存占比系数和关联程度系数。
在本申请的一些实施例中,所述确定单元11,用于根据所述服务调用关系,从多个核心微服务中确定出所述每一个微服务对应的每一组目标核心微服务的第一数量,得到多个第一数量;根据所述多个第一数量和所述核心微服务的数量确定出所述多个关联程度值。
在本申请的一些实施例中,所述确定单元11,用于从所述多个服务降级优先级中确定出剩余微服务对应的剩余服务优先级;所述剩余微服务为所述多个微服务中除核心微服务和关联微服务外的微服务;所述关联微服务为与所述核心微服务后向关联的微服务;
所述获取单元12,用于从所述多个内存占比中获取剩余微服务对应的第一内存占比;
所述执行单元13,用于根据预设内存占比与预设降级等级之间的对应关系、所述第一内存占比和所述剩余服务优先级,对所述剩余微服务执行对应等级的降级操作。
在本申请的一些实施例中,所述装置还包括去除单元;
所述确定单元11,用于从所述多个服务降级优先级中确定出所述核心微服务对应的多个第一服务优先级;从所述多个服务降级优先级中确定出所述关联微服务对应的第二服务优先级;
所述去除单元,用于在所述多个服务降级优先级中去除所述多个第一服务优先级和所述第二服务优先级,得到所述剩余服务优先级。
在本申请的一些实施例中,所述装置还包括建立单元;
所述获取单元12,用于从微服务注册中心获取第一微服务对应的第一后向关联微服务;所述第一微服务为所述微服务注册中心所包含的全部的微服务;所述第一微服务包括所述多个微服务;
所述建立单元,用于建立所述第一微服务和所述第一后向关联微服务之间的后向关联关系;
相应的,所述获取单元12,用于从所述后向关联关系中获取所述服务调用关系。
需要说明的是,在实际应用中,上述确定单元11、获取单元12和执行单元13可由服务降级装置1上的处理器14实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现;上述数据存储可由服务降级装置1上的存储器15实现。
本申请实施例还提供了一种服务降级装置1,如图11所示,所述服务降级装置1包括:处理器14、存储器15和通信总线16,所述存储器15通过所述通信总线16与所述处理器14进行通信,所述存储器15存储所述处理器14可执行的程序,当所述程序被执行时,通过所述处理器14执行如上述所述的服务降级方法。
在实际应用中,上述存储器15可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器14提供指令和数据。
本申请实施例提供了一种计算机可读存储介质,其上有计算机程序,所述程序被处理器14执行时实现如上述所述的服务降级方法。
可以理解的是,服务降级装置通过获取多个微服务之间的服务调用关系,根据多个微服务对应的多个内存信息和服务调用关系确定多个微服务对应的多个服务降级优先级,以根据多个服务降级优先级对多个服务降级优先级执行微服务降级操作,即对除核心微服务和与核心微服务关联的关联微服务外的剩余微服务先执行降级操作,而剩余微服务与核心微服务之间的依赖性较弱,在对剩余微服务执行降级操作时不会影响到核心微服务,使得可以正常执行微服务访问指令对应的访问过程,提高了微服务访问时的访问效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

Claims (10)

1.一种服务降级方法,其特征在于,所述方法包括:
在接收到客户端传输的微服务访问指令的情况下,确定与所述访问指令中的访问信息相关的多个微服务;
获取所述多个微服务之间的服务调用关系;
确定所述多个微服务对应的多个内存信息;
根据所述服务调用关系和所述多个内存信息,确定所述多个服务降级优先级,并按照所述多个服务降级优先级执行微服务降级操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述服务调用关系和所述多个内存信息,确定所述多个服务降级优先级,包括:
根据所述多个内存信息确定所述多个微服务的总内存;
分别确定所述多个内存信息和总内存之间的比值,得到所述多个内存占比;
根据所述多个内存占比和所述服务调用关系,确定所述多个服务降级优先级。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个内存占比和所述服务调用关系,确定所述多个服务降级优先级,包括:
确定所述多个微服务中的核心微服务;并在所述服务调用关系中,确定所述多个微服务中的每一个微服务与所述核心微服务之间的关联程度,得到多个关联程度值;
获取内存占比系数和关联程度系数;
根据所述多个内存占比、所述内存占比系数、所述关联程度系数和所述多个关联程度值,确定所述多个微服务对应的多个服务降级优先级。
4.根据权利要求3所述的方法,其特征在于,所述核心微服务的数量为多个,所述在所述服务调用关系中,确定所述多个微服务中的每一个微服务与所述核心微服务之间的关联程度,得到多个关联程度值,包括:
根据所述服务调用关系,从多个核心微服务中确定出所述每一个微服务对应的每一组目标核心微服务的第一数量,得到多个第一数量;
根据所述多个第一数量和所述核心微服务的数量确定出所述多个关联程度值。
5.根据权利要求1所述的方法,其特征在于,所述按照所述多个服务降级优先级执行微服务降级操作,包括:
从所述多个服务降级优先级中确定出剩余微服务对应的剩余服务优先级;所述剩余微服务为所述多个微服务中除核心微服务和关联微服务外的微服务;所述关联微服务为与所述核心微服务后向关联的微服务;
从所述多个内存占比中获取剩余微服务对应的第一内存占比;
根据预设内存占比与预设降级等级之间的对应关系、所述第一内存占比和所述剩余服务优先级,对所述剩余微服务执行对应等级的降级操作。
6.根据权利要求5所述的方法,其特征在于,所述从所述多个服务降级优先级中确定出剩余微服务对应的剩余服务优先级,包括:
从所述多个服务降级优先级中确定出所述核心微服务对应的多个第一服务优先级;
从所述多个服务降级优先级中确定出所述关联微服务对应的第二服务优先级;
在所述多个服务降级优先级中去除所述多个第一服务优先级和所述第二服务优先级,得到所述剩余服务优先级。
7.根据权利要求1所述的方法,其特征在于,所述获取所述多个微服务之间的服务调用关系之前,所述方法还包括:
从微服务注册中心获取第一微服务对应的第一后向关联微服务;所述第一微服务为所述微服务注册中心所包含的全部的微服务;所述第一微服务包括所述多个微服务;
建立所述第一微服务和所述第一后向关联微服务之间的后向关联关系;
相应的,所述获取所述多个微服务之间的服务调用关系,包括:
从所述后向关联关系中获取所述服务调用关系。
8.一种服务降级装置,其特征在于,所述装置包括:
确定单元,用于在接收到客户端传输的微服务访问指令的情况下,确定与所述访问指令中的访问信息相关的多个微服务;确定所述多个微服务对应的多个内存信息;根据服务调用关系和所述多个内存信息,确定所述多个服务降级优先级;
获取单元,用于获取所述多个微服务之间的所述服务调用关系;
执行单元,用于按照所述多个服务降级优先级执行微服务降级操作。
9.一种服务降级装置,其特征在于,所述装置包括:
存储器、处理器和通信总线,所述存储器通过所述通信总线与所述处理器进行通信,所述存储器存储所述处理器可执行的服务降级的程序,当所述服务降级的程序被执行时,通过所述处理器执行如权利要求1至7任一项所述的方法。
10.一种存储介质,其上存储有计算机程序,应用于服务降级装置,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
CN202111543479.XA 2021-12-16 2021-12-16 一种服务降级方法及装置、存储介质 Pending CN114237666A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111543479.XA CN114237666A (zh) 2021-12-16 2021-12-16 一种服务降级方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111543479.XA CN114237666A (zh) 2021-12-16 2021-12-16 一种服务降级方法及装置、存储介质

Publications (1)

Publication Number Publication Date
CN114237666A true CN114237666A (zh) 2022-03-25

Family

ID=80757318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111543479.XA Pending CN114237666A (zh) 2021-12-16 2021-12-16 一种服务降级方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN114237666A (zh)

Similar Documents

Publication Publication Date Title
US10439937B2 (en) Service addressing in distributed environment
EP3432157A1 (en) Data table joining mode processing method and apparatus
CN112988066B (zh) 一种数据处理方法及装置
CN111383031B (zh) 一种区块链中的智能合约执行方法、系统和电子设备
CN112866136B (zh) 业务数据处理方法和装置
CN111324303B (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
CN112506671B (zh) 区块链中的交易处理方法、装置及电子设备
CN111858651A (zh) 一种数据处理方法以及数据处理装置
US20170270000A1 (en) Method for storage management and storage device
CN112466378A (zh) 一种固态硬盘运行纠错方法、装置及相关组件
CN115167780A (zh) 一种数据重构方法、装置、电子设备及存储介质
CN111708812A (zh) 一种分布式数据处理方法
CN111857600B (zh) 一种数据读写方法及装置
CN110658994B (zh) 一种基于hdd和ssd混合磁盘阵列的数据处理方法及装置
CN114237666A (zh) 一种服务降级方法及装置、存储介质
CN110764705B (zh) 一种数据的读写方法、装置、设备和存储介质
CN115794446B (zh) 一种消息处理方法、装置、电子设备和存储介质
CN116204311A (zh) Pod集群扩缩容方法、装置、计算机设备和存储介质
CN112947858B (zh) 一种raid 5校验值的更新方法、装置和介质
CN115481295A (zh) 基于分布式系统的数据存储方法、装置、设备及存储介质
CN113238857B (zh) 一种基于内存池的map映射表多线程遍历方法及装置
CN109344043A (zh) 一种性能分析方法及相关装置
CN114201113B (zh) 多对象存储桶的选择方法、装置及处理器
CN116680142B (zh) 内存资源监测方法、电子设备、程序产品及介质
CN116450054B (zh) Io请求处理方法、装置、主机和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination