一种微服务状态调整方法、装置、设备及存储介质制造方法及图纸

技术编号:38475746 阅读:15 留言:0更新日期:2023-08-15 16:55
本申请公开了一种微服务状态调整方法、装置、设备及存储介质,涉及微服务技术领域,包括:获取当前目标微服务对外提供的各个服务接口的接口状态信息,并采集目标微服务部署的目标服务器的资源状态信息;根据接口状态信息和资源状态信息判断目标微服务是否处于不健康状态,若处于则按照预先创建的配置规则自适应调整当前线程池的配置参数,得到调整后线程池参数,并将调整后线程池参数保存至日志中。本申请通过接口状态信息和资源状态信息对微服务的健康状态进行判断,并在处于不健康状态时通过预先创建的配置规则对线程池的配置参数进行自适应调整,能够实现微服务状态的自动化调整,大大减少人力资源的浪费,并提高微服务的响应速度。的响应速度。的响应速度。

【技术实现步骤摘要】
一种微服务状态调整方法、装置、设备及存储介质


[0001]本申请涉及微服务
,特别涉及一种微服务状态调整方法、装置、设备及存储介质。

技术介绍

[0002]目前,在大型分布式微服务开发中,每个服务都会部署多台服务器,当服务的访问量增大且现有的服务器数量不足以支撑服务正常完成响应时,通常会通过HPA(Horizontal Pod Autoscaler,水平自动伸缩)技术进行服务器扩容,以增加服务器数量使得响应正常完成。然而,增加服务器的数量会直接增加成本,并且扩容这个操作不是瞬时完成的,通常需要经过几分钟甚至几十分钟的时间,且此时间内服务的响应处于慢的状态,会影响用户的使用体验。
[0003]为了提高服务的响应速度,目前在微服务开发中还会使用很多的线程池,然而,一些线程池的配置参数会影响线程池的运作方式,当服务的访问量增大时,服务器会通过告警的方式通知给开发人员或运维人员,以便开发人员或运维人员通过手动调整线程池的参数来确保服务的正常响应。然而这种手动调参的方式需要开发人员和运维人员24小时注意线上服务器的告警信息并实时跟进调整参数,从而浪费了大量的人力资源。另外,在微服务开发过程中,为了方便对服务器系统进行问题排查,在编写代码过程中,通常会在代码的很多地方进行日志打印,然而,打印日志需要占用服务器的一些资源,并影响服务器的一些性能。当服务的某个接口访问量增大时,服务器还会针对这个接口进行日志打印,当接口的访问量很高时,打印的日志量也会随之升高,这会占用服务器的一些宝贵资源,如CPU(Central Processing Unit,中央处理器)、内存、磁盘、网络等。
[0004]因此,如何对微服务的状态进行调整从而提高服务的响应速度是本领域目前还有待进一步解决的问题。

技术实现思路

[0005]有鉴于此,本申请的目的在于提供一种微服务状态调整方法、装置、设备及存储介质,能够实现微服务状态的自动化调整,大大减少人力资源的浪费,并提高微服务的响应速度。其具体方案如下:
[0006]第一方面,本申请公开了一种微服务状态调整方法,包括:
[0007]获取当前目标微服务对外提供的各个服务接口的接口状态信息,并采集所述目标微服务部署的目标服务器的资源状态信息;
[0008]根据所述接口状态信息和所述资源状态信息判断所述目标微服务是否处于不健康状态;
[0009]若所述目标微服务处于不健康状态,则按照预先创建的配置规则自适应调整当前线程池的配置参数,得到调整后线程池参数,并将所述调整后线程池参数保存至日志中。
[0010]可选的,所述获取当前目标微服务对外提供的各个服务接口的接口状态信息,并
采集所述目标微服务部署的目标服务器的资源状态信息,包括:
[0011]获取当前目标微服务对外提供的各个服务接口的每秒访问量和平均响应时间,并采集所述目标微服务部署的目标服务器的CPU状态信息和内存状态信息。
[0012]可选的,所述获取当前目标微服务对外提供的各个服务接口的每秒访问量和平均响应时间,包括:
[0013]通过微服务流量控制组件Sentinel统计当前目标微服务对外提供的各个服务接口的每秒访问量和平均响应时间。
[0014]可选的,所述采集所述目标微服务部署的目标服务器的CPU状态信息和内存状态信息,包括:
[0015]通过oshi采集所述目标微服务部署的目标服务器的CPU状态信息和内存状态信息。
[0016]可选的,所述按照预先创建的配置规则自适应调整当前线程池的配置参数之前,还包括:
[0017]暂停当前日志打印。
[0018]可选的,所述根据所述接口状态信息和所述资源状态信息判断所述目标微服务是否处于不健康状态,包括:
[0019]分别判断所述每秒访问量和/或所述平均响应时间和/或所述CPU状态信息和/或所述内存状态信息是否达到对应的触发点;
[0020]相应的,根据所述接口状态信息和所述资源状态信息判断所述目标微服务是否处于不健康状态,包括:
[0021]若所述每秒访问量和/或所述平均响应时间和/或所述CPU状态信息和/或所述内存状态信息达到了对应的触发点,则判定所述目标微服务处于不健康状态。
[0022]可选的,所述微服务状态调整方法,还包括:
[0023]在所述微服务的配置中心Apollo中添加所述配置规则。
[0024]第二方面,本申请公开了一种微服务状态调整装置,包括:
[0025]信息获取模块,用于获取当前目标微服务对外提供的各个服务接口的接口状态信息,并采集所述目标微服务部署的目标服务器的资源状态信息;
[0026]状态判断模块,用于根据所述接口状态信息和所述资源状态信息判断所述目标微服务是否处于不健康状态;
[0027]参数调整模块,用于如果所述目标微服务处于不健康状态,则按照预先创建的配置规则自适应调整当前线程池的配置参数,得到调整后线程池参数;
[0028]参数保存模块,用于将所述调整后线程池参数保存至日志中。
[0029]第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的微服务状态调整方法。
[0030]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的微服务状态调整方法。
[0031]可见,本申请先获取当前目标微服务对外提供的各个服务接口的接口状态信息,并采集所述目标微服务部署的目标服务器的资源状态信息,然后根据所述接口状态信息和所述资源状态信息判断所述目标微服务是否处于不健康状态,如果所述目标微服务处于不
健康状态,则按照预先创建的配置规则自适应调整当前线程池的配置参数,得到调整后线程池参数,并将所述调整后线程池参数保存至日志中。本申请通过接口状态信息和资源状态信息对微服务的健康状态进行判断,并在处于不健康状态时通过预先创建的配置规则对线程池的配置参数进行自适应调整,能够实现微服务状态的自动化调整,大大减少人力资源的浪费,并提高了微服务的响应速度。
附图说明
[0032]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0033]图1为本申请公开的一种微服务状态调整方法流程图;
[0034]图2为本申请公开的一种具体的微服务状态调整方法流程图;
[0035]图3为本申请公开的一种具体的微服务状态调整方法流程图;
[0036]图4为本申请公开的一种微服务状态调整装置结构示意图;
[0037]图5为本申请公开的一种电子设备结构图。
具体实施方式
[0038]下面将结合本申请实施例中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务状态调整方法,其特征在于,包括:获取当前目标微服务对外提供的各个服务接口的接口状态信息,并采集所述目标微服务部署的目标服务器的资源状态信息;根据所述接口状态信息和所述资源状态信息判断所述目标微服务是否处于不健康状态;若所述目标微服务处于不健康状态,则按照预先创建的配置规则自适应调整当前线程池的配置参数,得到调整后线程池参数,并将所述调整后线程池参数保存至日志中。2.根据权利要求1所述的微服务状态调整方法,其特征在于,所述获取当前目标微服务对外提供的各个服务接口的接口状态信息,并采集所述目标微服务部署的目标服务器的资源状态信息,包括:获取当前目标微服务对外提供的各个服务接口的每秒访问量和平均响应时间,并采集所述目标微服务部署的目标服务器的CPU状态信息和内存状态信息。3.根据权利要求2所述的微服务状态调整方法,其特征在于,所述获取当前目标微服务对外提供的各个服务接口的每秒访问量和平均响应时间,包括:通过微服务流量控制组件Sentinel统计当前目标微服务对外提供的各个服务接口的每秒访问量和平均响应时间。4.根据权利要求2所述的微服务状态调整方法,其特征在于,所述采集所述目标微服务部署的目标服务器的CPU状态信息和内存状态信息,包括:通过oshi采集所述目标微服务部署的目标服务器的CPU状态信息和内存状态信息。5.根据权利要求2所述的微服务状态调整方法,其特征在于,所述按照预先创建的配置规则自适应调整当前线程池的配置参数之前,还包括:暂停当前日志打印。6.根据权利要求1所述的微服务状态调整方法,其特征在于...

【专利技术属性】
技术研发人员:刘吉江
申请(专利权)人:上海微盟企业发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1