一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用服务的配置方法、装置和电子设备与流程

2022-12-19 23:16:34 来源:中国专利 TAG:


1.本发明涉及软件开发领域,具体涉及一种应用服务的配置方法、装置和电子设备。


背景技术:

2.消息队列是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。消息队列通常又会被划分为多个主题分区,分区的划分可提高消息队列的可伸缩性,水平扩展能力。在分布式系统中,容器作为一个中轻量级虚拟化技术,将应用程序及其运行依赖环境打包封装到标准化、强移植的镜像中,通过容器引擎提供进程隔离、资源可限制的运行环境,实现应用与操作系统及底层硬件的解耦,将该整体作为实现某种功能的应用服务,一次打包,随处运行。如图1所示,在应用服务进行消费时,应用服务内设置多个线程分别对应消息队列的各个主题分区进行消费,如果遇到消息大量增长导致应用服务来不及消费处理的情况,会造成消息队列的消息积压,如果不及时处理,可能会造成应用系统出现故障或延迟。现有技术针对这一问题,如果消息队列出现消息积压,就需要针对应用服务进行扩容,但是现有技术判断消息积压以及消息较少的标准还处于单纯设定一个阈值进行比对,应用服务扩容方案如何实施也没有一个具体地标准,导致上述问题的解决效果差强人意。因此,需要研究一种应用服务的配置方法,从而准确应对消息积压的情况。


技术实现要素:

3.有鉴于此,本发明实施方式提供了一种应用服务的配置方法、装置和电子设备,从而提高了判定消息积压情况出现的准确率。
4.根据第一方面,本发明实施例提供了一种应用服务的配置方法,应用于应用系统,所述方法包括:按照预设周期获取消息队列各分区的消息积压数据;基于各分区的消息积压数据计算消息队列的消息积压数据,并将消息队列的消息积压数据与预设积压阈值进行比对,以根据比对结果确定当前周期是否出现消息积压;若在预设扩容时间段内出现消息积压的次数超过第一预设次数阈值,则扩充应用系统内的应用服务数量,所述预设扩容时间段大于所述预设周期。
5.可选地,所述按照预设周期获取消息队列各分区的消息积压数据,包括:在当前周期获取各分区当前消费到的偏移标志位和各分区发布消息的偏移标志位;基于各分区发布消息的偏移标志位与当前消费到的偏移标志位的差值获取各分区的消息积压数据。
6.可选地,所述扩充应用系统内的应用服务数量,包括:基于各分区消息积压数据的和与单个应用服务消费能力的比值,计算第一候选扩容数量;计算分区数量与已有应用服务数量的差,得到第二候选扩容数量;将所述第一候选扩容数量和所述第二候选扩容数量中的较小值确定为应用服务的扩充数量;按照所述应用服务的扩充数量扩充应用系统内的应用服务数量。
7.可选地,所述方法还包括:按照所述预设周期统计从消息队列拉取的消息量;基于
预设缩容阈值与所述从消息队列拉取的消息量的差值,确定是否出现应用服务资源冗余;若在预设缩容时间段内出现应用服务资源冗余的次数超过第二预设次数阈值,则减少应用系统内的应用服务数量,所述预设缩容时间段大于所述预设周期。
8.根据第二方面,本发明实施例提供了一种应用服务的配置装置,应用于应用系统,所述装置包括:消息积压数据获取模块,用于按照预设周期获取消息队列各分区的消息积压数据;积压分区确定模块,用于基于各分区的消息积压数据计算消息队列的消息积压数据,并将消息队列的消息积压数据与预设积压阈值进行比对,以根据比对结果确定当前周期是否出现消息积压;扩容模块,用于若在预设扩容时间段内出现消息积压的次数超过第一预设次数阈值,则扩充应用系统内的应用服务数量,所述预设扩容时间段大于所述预设周期。
9.可选地,所述消息积压数据获取模块,包括:偏移量获取模块,用于在当前周期获取各分区当前消费到的偏移标志位和各分区发布消息的偏移标志位;消息积压数据计算模块,用于基于各分区发布消息的偏移标志位与当前消费到的偏移标志位的差值获取各分区的消息积压数据。
10.可选地,所述扩容模块,包括:第一扩容计算模块,用于基于各分区消息积压数据的和与单个应用服务消费能力的比值,计算第一候选扩容数量;第二扩容计算模块,用于计算分区数量与已有应用服务数量的差,得到第二候选扩容数量;扩容计算模块,用于将所述第一候选扩容数量和所述第二候选扩容数量中的较小值确定为应用服务的扩充数量;扩容执行模块,用于按照所述应用服务的扩充数量扩充应用系统内的应用服务数量。
11.可选地,所述装置还包括:拉取消息量统计模块,用于按照所述预设周期统计从消息队列拉取的消息量;资源冗余判定模块,用于基于预设缩容阈值与所述从消息队列拉取的消息量的差值,确定是否出现应用服务资源冗余;缩容模块,用于若在预设缩容时间段内出现应用服务资源冗余的次数超过第二预设次数阈值,则减少应用系统内的应用服务数量,所述预设缩容时间段大于所述预设周期。
12.根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
13.根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
14.本技术提供的技术方案,具有如下优点:
15.本技术提供的技术方案,周期性的统计消息队列的各个分区的消息积压数据,并利用各个分区的消息积压数据计算消息队列整体的消息积压数据,然后通过消息队列的消息积压数据与预设积压阈值的大小关系,判定出当前周期是否出现消息积压的情况。之后在一段时间内,判断各个统计周期出现消息积压的次数,如果出现消息积压的次数超过第一预设次数阈值,才认为消息队列出现了消息积压,从而需要扩充应用系统内的应用服务数量,提高了判定消息队列是否真实出现消息积压的准确性。
16.此外,如果消息队列被判定为出现消息积压,在一个实施例中,计算了消息队列整
体消息积压数据与单个应用服务消费能力的比值,得到第一候选扩容数量,还计算了分区数量与已有应用服务数量的差,得到第二候选扩容数量,并取第一候选扩容数量和第二候选扩容数量中的较小值作为最终扩容数量。以使应用系统调配最少的资源解决消息积压问题,进一步实现了应用服务的精准配置。
附图说明
17.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
18.图1示出了现有技术应用服务配置的流程示意图;
19.图2示出了本发明一个实施方式中一种应用服务的配置方法的步骤示意图;
20.图3示出了本发明一个实施方式中一种应用服务的配置方法的流程示意图;
21.图4示出了本发明一个实施方式中一种应用服务的配置装置的结构示意图;
22.图5示出了本发明一个实施方式中一种电子设备的结构示意图。
具体实施方式
23.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
24.请参阅图2和图3,在一个实施方式中,一种应用服务的配置方法,具体包括以下步骤:
25.步骤s101:按照预设周期获取消息队列各分区的消息积压数据。
26.步骤s102:基于各分区的消息积压数据计算消息队列的消息积压数据,并将消息队列的消息积压数据与预设积压阈值进行比对,以根据比对结果确定当前周期是否出现消息积压。
27.步骤s103:若在预设扩容时间段内出现消息积压的次数超过第一预设次数阈值,则扩充应用系统内的应用服务数量,预设扩容时间段大于预设周期。
28.具体地,本实施例通过定时任务监控消息队列,按照预设周期获取消息队列各分区的消息积压数据,并利用各分区的消息积压数据进行求和运算,得到消息队列整体的消息积压数据,然后利用消息队列整体的消息积压数据与预设积压阈值进行比对,当消息队列整体的消息积压数据超过预设积压阈值时,则判定当前周期出现消息积压。此外,本实施例还设置了预设扩容时间段作为扩容策略生效周期,预设扩容时间段大于上述预设周期,在预设扩容时间段内,若各个监控周期判定出现消息积压的次数超过第一预设次数阈值,才确认消息队列的消息积压情况需要缓解,从而启动扩容策略增加应用服务的数量。基于此,通过各个监控周期的单独判定以及多个监控周期的联合判定,提高了判定消息队列是否真实出现消息积压的准确性。具体地,判定是否需要扩容的表达式如下:
[0029][0030]
式中,li是第i个分区的积压数据,j是消息队列的分区数量,n是预设积压阈值,count()是计算条件内出现消息积压的次数,m是扩容时需要超过的第一预设次数阈值,t是预设扩容时间段。
[0031]
具体地,在一实施例中,上述步骤s101,具体包括如下步骤:
[0032]
步骤一:在当前周期获取各分区当前消费到的偏移标志位和各分区发布消息的偏移标志位。
[0033]
步骤二:基于各分区发布消息的偏移标志位与当前消费到的偏移标志位的差值获取各分区的消息积压数据。
[0034]
具体地,应用服务内的预设线程作为消费者从消息队列对应的分区中消费消息,每次消费之后,分区为了确定下次消费需要从哪里开始,从而当前消费的偏移标志位offset会发生改变,以告知消费者下次从分区的哪一具体位置开始消费。消息发布者每次发布消息到消息队列中的各个分区时,同样会更新一个最新产生的偏移标志位offset,即发布消息的偏移标志位。基于此,在本实施例中,通过计算各个分区发布消息的偏移标志位与当前消费到的偏移标志位的差值,得到各个分区还未消费的消息,并将各个分析还未消费的消息作为消息积压数据,以准确衡量消息积压情况。
[0035]
具体地,在一实施例中,上述步骤s103,具体包括如下步骤:
[0036]
步骤三:基于各分区消息积压数据的和与单个应用服务消费能力的比值,计算第一候选扩容数量。
[0037]
步骤四:计算分区数量与已有应用服务数量的差,得到第二候选扩容数量。
[0038]
步骤五:将第一候选扩容数量和第二候选扩容数量中的较小值确定为应用服务的扩充数量。
[0039]
步骤六:按照应用服务的扩充数量扩充应用系统内的应用服务数量。
[0040]
具体地,为了进一步实现精准扩容,能够在增加最少计算资源的情况下,解决消息积压的问题,在本实施例中,当需要对应用服务进行扩容时,按照如下两种途径进行扩容寻优:
[0041]
首先,计算各分区消息积压数据的和,得到消息队列整体的消息积压数据,然后计算消息队列消息积压数据与单个应用服务消费能力(单个应用服务在一个监控周期内消费消息的条数)的比值,计算第一候选扩容数量。然后在另一途径,计算分区数量与已有应用服务数量的差,得到第二候选扩容数量。最后将其中的较小值确定为应用服务的扩充数量,从而在增加最少计算资源的情况下,解决消息积压的问题,避免资源浪费,实现精准扩容。
[0042]
具体地,在一实施例中,本发明实施例提供的一种应用服务的配置方法,还包括如下步骤:
[0043]
步骤七:按照预设周期统计从消息队列拉取的消息量。
[0044]
步骤八:基于预设缩容阈值与从消息队列拉取的消息量的差值,确定是否出现应用服务资源冗余。
[0045]
步骤九:若在预设缩容时间段内出现应用服务资源冗余的次数超过第二预设次数阈值,则减少应用系统内的应用服务数量,预设缩容时间段大于预设周期。
[0046]
具体地,在本实施例中,针对应用服务数量较多的情况,还提供了一种缩容判定策略,从而进一步提高应用服务的配置准确度。具体缩容策略为:
[0047]
同样以预设周期监控应用服务从消息队列整体拉取的消息量,并计算预设缩容阈值与从消息队列拉取的消息量的差值,如果该差值大于零,则表征应用服务在当前监控周期从消息队列整体拉取的消息较少,出现了应用服务资源的冗余,只需要少量应用服务即可完成消息拉取。因此,进一步判定在预设缩容时间段内,各个监控周期出现应用服务资源冗余的次数超过第二预设次数阈值,如果超过第二预设次数阈值,则执行缩容策略,从而进一步提高了应用服务的配置的准确性。具体地,缩容策略判定表达式如下:
[0048]
[count(x-y》0)》z]
t
[0049]
式中,x是拉取消息数据量的缩容阈值,y是每次从消息队列拉取的消息量,count()是计算出现应用服务资源冗余的次数,z是第二预设次数阈值,t是预设缩容时间段。
[0050]
基于此,应用系统在判断需要进行扩缩容的时候,调用容器引擎的扩缩容请求api,容器引擎响应扩缩容请求,完成指定服务的扩缩容。
[0051]
通过上述步骤,本技术提供的技术方案,周期性的统计消息队列的各个分区的消息积压数据,并利用各个分区的消息积压数据计算消息队列整体的消息积压数据,然后通过消息队列的消息积压数据与预设积压阈值的大小关系,判定出当前周期是否出现消息积压的情况。之后在一段时间内,判断各个统计周期出现消息积压的次数,如果出现消息积压的次数超过第一预设次数阈值,才认为消息队列出现了消息积压,从而需要扩充应用系统内的应用服务数量,提高了判定消息队列是否真实出现消息积压的准确性。
[0052]
此外,如果消息队列被判定为出现消息积压,在一个实施例中,计算了消息队列整体消息积压数据与单个应用服务消费能力的比值,得到第一候选扩容数量,还计算了分区数量与已有应用服务数量的差,得到第二候选扩容数量,并取第一候选扩容数量和第二候选扩容数量中的较小值作为最终扩容数量。以使应用系统调配最少的资源解决消息积压问题,进一步实现了应用服务的精准配置,通过利用上述数据进行合理的策略分析,实现了应用服务的弹性扩缩容能力,对于业务有明显高峰期的系统,可保证系统平滑稳定运行。
[0053]
如图4所示,本实施例还提供了一种应用服务的配置装置,应用于应用系统,该装置包括:
[0054]
消息积压数据获取模块101,用于按照预设周期获取消息队列各分区的消息积压数据。详细内容参见上述方法实施例中步骤s101的相关描述,在此不再进行赘述。
[0055]
积压分区确定模块102,用于基于各分区的消息积压数据计算消息队列的消息积压数据,并将消息队列的消息积压数据与预设积压阈值进行比对,以根据比对结果确定当前周期是否出现消息积压。详细内容参见上述方法实施例中步骤s102的相关描述,在此不再进行赘述。
[0056]
扩容模块103,用于若在预设扩容时间段内出现消息积压的次数超过第一预设次数阈值,则扩充应用系统内的应用服务数量,预设扩容时间段大于预设周期。详细内容参见上述方法实施例中步骤s103的相关描述,在此不再进行赘述。
[0057]
具体地,在一实施例中,上述消息积压数据获取模块101,包括:
[0058]
偏移量获取模块,用于在当前周期获取各分区当前消费到的偏移标志位和各分区发布消息的偏移标志位。详细内容参见上述方法实施例中步骤一的相关描述,在此不再进行赘述。
[0059]
消息积压数据计算模块,用于基于各分区发布消息的偏移标志位与当前消费到的偏移标志位的差值获取各分区的消息积压数据。详细内容参见上述方法实施例中步骤二的相关描述,在此不再进行赘述。
[0060]
具体地,在一实施例中,上述扩容模块,包括:
[0061]
第一扩容计算模块,用于基于各分区消息积压数据的和与单个应用服务消费能力的比值,计算第一候选扩容数量。详细内容参见上述方法实施例中步骤三的相关描述,在此不再进行赘述。
[0062]
第二扩容计算模块,用于计算分区数量与已有应用服务数量的差,得到第二候选扩容数量。详细内容参见上述方法实施例中步骤四的相关描述,在此不再进行赘述。
[0063]
扩容计算模块,用于将第一候选扩容数量和第二候选扩容数量中的较小值确定为应用服务的扩充数量。详细内容参见上述方法实施例中步骤五的相关描述,在此不再进行赘述。
[0064]
扩容执行模块,用于按照应用服务的扩充数量扩充应用系统内的应用服务数量。详细内容参见上述方法实施例中步骤六的相关描述,在此不再进行赘述。
[0065]
具体地,在一实施例中,本发明实施例提供的一种应用服务的配置装置,还包括:
[0066]
拉取消息量统计模块,用于按照预设周期统计从消息队列拉取的消息量。详细内容参见上述方法实施例中步骤七的相关描述,在此不再进行赘述。
[0067]
资源冗余判定模块,用于基于预设缩容阈值与从消息队列拉取的消息量的差值,确定是否出现应用服务资源冗余。详细内容参见上述方法实施例中步骤八的相关描述,在此不再进行赘述。
[0068]
缩容模块,用于若在预设缩容时间段内出现应用服务资源冗余的次数超过第二预设次数阈值,则减少应用系统内的应用服务数量,预设缩容时间段大于预设周期。详细内容参见上述方法实施例中步骤九的相关描述,在此不再进行赘述。
[0069]
本发明实施例提供的应用服务的配置装置,用于执行上述实施例提供的应用服务的配置方法,其实现方式与原理相同,详细内容参见上述方法实施例的相关描述,不再赘述。
[0070]
通过上述各个组成部分的协同合作,本技术提供的技术方案,周期性的统计消息队列的各个分区的消息积压数据,并利用各个分区的消息积压数据计算消息队列整体的消息积压数据,然后通过消息队列的消息积压数据与预设积压阈值的大小关系,判定出当前周期是否出现消息积压的情况。之后在一段时间内,判断各个统计周期出现消息积压的次数,如果出现消息积压的次数超过第一预设次数阈值,才认为消息队列出现了消息积压,从而需要扩充应用系统内的应用服务数量,提高了判定消息队列是否真实出现消息积压的准确性。
[0071]
此外,如果消息队列被判定为出现消息积压,在一个实施例中,计算了消息队列整体消息积压数据与单个应用服务消费能力的比值,得到第一候选扩容数量,还计算了分区数量与已有应用服务数量的差,得到第二候选扩容数量,并取第一候选扩容数量和第二候
选扩容数量中的较小值作为最终扩容数量。以使应用系统调配最少的资源解决消息积压问题,进一步实现了应用服务的精准配置,通过利用上述数据进行合理的策略分析,实现了应用服务的弹性扩缩容能力,对于业务有明显高峰期的系统,可保证系统平滑稳定运行。
[0072]
图5示出了本发明实施例的一种电子设备,该设备包括处理器901和存储器902,可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0073]
处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0074]
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如上述方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
[0075]
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0076]
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
[0077]
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0078]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0079]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献