CN111475373A - 微服务下的服务控制方法、装置、计算机设备及存储介质 - Google Patents
微服务下的服务控制方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111475373A CN111475373A CN202010163908.XA CN202010163908A CN111475373A CN 111475373 A CN111475373 A CN 111475373A CN 202010163908 A CN202010163908 A CN 202010163908A CN 111475373 A CN111475373 A CN 111475373A
- Authority
- CN
- China
- Prior art keywords
- service
- resource utilization
- utilization rate
- micro
- resource
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例属于计算机技术领域,涉及一种微服务下的服务控制方法,包括接收服务请求,根据服务请求调用对应的微服务执行处理任务;动态检测当前微服务的资源使用状态,获取资源使用状态对应的第一资源使用率;判断第一资源使用率是否大于资源使用阈值;根据服务信息重新动态获取微服务的资源使用率作为第二资源使用率;计算两个相邻查询时间点的即时资源使用率的变化量,根据变化量确定微服务的动态增量情况;基于变化量、动态增量情况和即时资源使用率对微服务进行控制。本申请还提供一种微服务下的服务控制装置、计算机设备及存储介质。本申请实现了对微服务的一种高效联动控制方式,有效保证了多个服务在同时处理任务时***的稳定性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种微服务下的服务控制方法、装置、计算机设备及存储介质。
背景技术
随着互联网的快速发展,微服务中的资源共享程度大大增加,将对微服务的并发控制提出新的机遇和挑战。目前,微服务请求在资源冲突发生不频繁的情况下,仅依赖成熟的健康检查和动态的负载均衡来解决微服务的并发控制,是可以满足基本需求的。发明人意识到,在遇到多个服务进行任务处理时,如果不能及时找出资源使用率过高的服务并进行控制,则容易导致服务器压力大、整个程序处理性能变差。
发明内容
本申请实施例的目的在于提出一种微服务下的服务控制方法、装置、计算机设备及存储介质,旨在解决服务器由于微服务的资源使用率过高导致其处理效率降低的技术问题。
为了解决上述技术问题,本申请实施例提供一种微服务下的服务控制方法,采用了如下所述的技术方案:
一种微服务下的服务控制方法,包括以下步骤:
接收若干并发的服务请求,根据所述服务请求调用对应的微服务执行处理任务;
在执行所述处理任务时,动态检测当前所述微服务的资源使用状态,获取所述资源使用状态对应的第一资源使用率;
判断所述第一资源使用率是否大于预设的资源使用阈值,在判定所述第一资源使用率大于所述资源使用阈值时,存储所述第一资源使用率和当前所述微服务的服务信息至数据库;
定时查询所述数据库,根据所述数据库中存储的所述服务信息,重新动态获取所述微服务的资源使用率作为第二资源使用率,若所述第二资源使用率大于所述第一资源使用率,将所述第二动态资源使用率作为所述微服务的即时资源使用率;
获取多个查询时间点的即时资源使用率,计算两个相邻所述查询时间点的即时资源使用率的变化量,根据所述变化量确定所述微服务的动态增量情况;
基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制。
进一步的,所述根据所述服务请求调用对应的微服务执行处理任务的步骤包括:
获取初始配置信息,对微服务***进行初始化配置;
判断所述服务请求对应的微服务正在执行的任务数量是否大于预设次数阈值,若大于则对所述服务请求对应的处理任务先进行限流处理,否则正常执行所述处理任务。
进一步的,所述判断所述服务请求对应的微服务正在执行的任务数量是否大于预设次数阈值的步骤包括:
获取所述服务请求对应的微服务当前任务线程的数量,将所述任务线程的数量作为所述服务请求对应的微服务正在执行的任务数量,判断所述任务线程的数量是否大于预设次数阈值;
所述对所述服务请求对应的处理任务先进行限流处理包括:
缓存所述服务请求对应的处理任务,在确定所述微服务中存在旧任务线程执行结束时,中断所述旧任务线程,从线程池中启动新任务线程执行所述处理任务。
进一步的,所述资源使用状态包括响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率中的至少一种,所述获取所述资源使用状态对应的第一资源使用率的步骤包括:
获取所述响应时间、所述平均时间延迟、所述并发量、所述http错误响应码百分比、所述cpu使用率和所述内存使用率对应的优先级策略;
根据所述优先级策略,计算所述资源使用状态对应的第一资源使用率。
进一步的,所述根据所述变化量确定所述微服务的动态增量情况的步骤包括:
计算相邻所述查询时间点的时间差值作为增量时间,根据所述增量时间和所述变化量,计算相邻所述查询时间点的即时资源使用率对应的增量斜率;
根据所述增量斜率确定所述微服务的动态增量情况。
进一步的,所述基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制的步骤包括:
基于所述变化量、所述动态增量情况和所述即时资源使用率确定所述微服务的限制条件;
根据所述限制条件,确定是否对当前所述微服务进行限制处理,其中,在所述限制条件为必要限制条件时,对所述微服务进行限制处理,在所述限制条件为非必要限制条件时,不对所述微服务进行限制处理。
进一步的,所述根据所述限制条件,确定是否对当前所述微服务进行限制处理的步骤之后,所述微服务下的服务控制方法还包括:
定时检测所述微服务的服务状态,在确定所述服务状态为限制状态时,对所述微服务进行限制。
为了解决上述技术问题,本申请实施例还提供一种微服务下的服务控制装置,采用了如下所述的技术方案:
接收模块,用于接收若干并发的服务请求,根据所述服务请求调用对应的微服务执行处理任务;
第一获取模块,用于在执行所述处理任务时,动态检测当前所述微服务的资源使用状态,获取所述资源使用状态对应的第一资源使用率;
判定模块,用于判断所述第一资源使用率是否大于预设的资源使用阈值,在判定所述第一资源使用率大于所述资源使用阈值时,存储所述第一资源使用率和当前所述微服务的服务信息至数据库;
定时查询模块,用于定时查询所述数据库,根据所述数据库中存储的所述服务信息,重新动态获取所述微服务的资源使用率作为第二资源使用率,若所述第二资源使用率大于所述第一资源使用率,将所述第二动态资源使用率作为所述微服务的即时资源使用率;
第二获取模块,用于获取多个查询时间点的即时资源使用率,计算两个相邻所述查询时间点的即时资源使用率的变化量,根据所述变化量确定所述微服务的动态增量情况;
控制模块,用于基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器和处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述微服务下的服务控制方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述微服务下的服务控制方法的步骤。
上述微服务下的服务控制方法、装置、计算机设备及存储介质,通过接收若干并发的服务请求,根据所述服务请求调用对应的微服务执行处理任务,接着在执行所述处理任务时,动态检测当前所述微服务的资源使用状态,获取所述资源使用状态对应的第一资源使用率,其中,该资源使用状态包括了当前微服务的响应时间、平均时间延迟等数值,因此根据该资源使用状态即可获取到当前微服务中各项数值反映的第一资源使用率。而后,判断所述第一资源使用率是否大于预设的资源使用阈值,在判定所述第一资源使用率大于所述资源使用阈值时,存储所述第一资源使用率和当前所述微服务的服务信息至数据库,以便根据该服务信息对当前微服务的资源使用率进行查询;此后,定时查询所述数据库,根据所述数据库中存储的所述服务信息,重新动态获取所述微服务的资源使用率作为第二资源使用率,若所述第二资源使用率大于所述第一资源使用率,将所述第二动态资源使用率作为所述微服务的即时资源使用率,该即时资源使用率即为此刻微服务的资源使用率;之后获取多个查询时间点的即时资源使用率,计算两个相邻所述查询时间点的即时资源使用率的变化量,根据所述变化量确定所述微服务的动态增量情况;该变化量和该动态增量情况即反映了当前微服务的资源变化趋势,最后则基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制,实现了了对微服务的一种高效联动控制方式,有效地保证了多个服务在同时处理任务时***的稳定性。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2为微服务下的服务控制方法的流程示意图;
图3为图2中步骤200的细化流程示意图;
图4为图2中步骤300的细化流程示意图;
图5为图2中步骤600的细化流程示意图;
图6为图2中步骤700的细化流程示意图;
图7是根据本申请的微服务下的服务控制装置的一个实施例的结构示意图;
图8是根据本申请的计算机设备的一个实施例的结构示意图。
附图标记:1100接收模块;1200第一获取模块;1300判定模块;1400定时查询模块;1500第二获取模块;1600控制模块。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的微服务下的服务控制方法一般由服务端/终端执行,相应地,微服务下的服务控制装置一般设置于服务端/终端设备中。
应该理解,图1中的终端、网络和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的微服务下的服务控制方法的一个实施例的流程图。所述微服务下的服务控制方法,包括以下步骤:
步骤S200,接收若干并发的服务请求,根据所述服务请求调用对应的微服务执行处理任务;
该服务请求由多个请求发送端发起,在接收到服务请求时,解析该服务请求得到该服务请求对应的解析内容,根据该解析内容可以获取到该服务请求对应的微服务及处理任务。调用该服务请求对应的服务执行该服务请求对应的处理任务,并向请求发送端发送服务请求被接收成功的响应。
步骤S300,在执行所述处理任务时,动态检测当前所述微服务的资源使用状态,获取所述资源使用状态对应的第一资源使用率;
资源使用状态包括:服务响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率。在服务执行该处理任务时,基于轮询的方式动态检测当前该服务的资源使用状态。
具体地,一种可能的实现方式为,基于采集算法对cpu使用率和内存使用率进行信息采集,例如Process Explorer工具,执行top、jstack等命令查看***资源如响应时间、平均时间延迟、并发量、http错误响应码百分比等使用情况,然后经过解析和算法计算获取cpu和内存的使用率,另一种可能的实现方式直接读取当前操作***的***文件进行获取响应时间、平均时间延迟、并发量、http错误响应码百分比,调用相关操作***的资源采集接口实现类,获取cpu使用率和内存使用率。
在获取到当前该服务的资源使用状态时,基于该资源使用状态即可计算得到当前该服务的第一资源使用率,其中,该第一资源使用率可以为当前该资源使用状态中任一项所对应的指标值,如资源使用状态中cpu使用率所对应的具体数值。除此之外,该第一资源使用率亦可以为综合该资源使用状态计算得到的数值,即对该资源使用状态包括的服务响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率的分别对应的指标值,按照预设计算规则进行综合计算。如按照资源使用状态中每一项所对应的同权重进行求和计算等预设计算方式。
步骤S400,判断所述第一资源使用率是否大于预设的资源使用阈值,在判定所述第一资源使用率大于所述资源使用阈值时,存储所述第一资源使用率和当前所述微服务的服务信息至数据库;
计算当前微服务中资源使用状态对应的第一资源使用率,并获取该微服务对应的预设的资源使用阈值,对比该第一资源使用率与该资源使用阈值。具体地,一种实施方式为,若微服务A的响应时间=500s、平均时间延迟=400s、并发量=1000、http错误响应码百分比=40%、cpu使用率=60%和内存使用率=70%,该微服务A的第一资源使用率则为:
配置中心设定的预设响应时间=300s、预设平均时间延迟=200s、预设并发量=1500、预设http错误响应码百分比=20%、预设cpu使用率=70%和预设内存使用率=80%,则该配置中心设定的资源使用阈值为σ(pc)=1*100+1*100+1*10+1*10+1+1;经比较可知,服务A的第一资源使用率大于配置中心设定的资源使用阈值,存储该微服务A对应的第一资源使用率和当前该服务的服务信息至数据库。其中,该资源使用阈值由配置中心设定。在确定该第一资源使用率大于该资源使用阈值时,发送该预警指令至监控中心。该预警指令为若当前服务的资源使用率超过预设的资源使用阈值,自动触发预警指令到监控中心,同时可展示到监控界面,方便运维人员进行查看。
步骤S500,定时查询所述数据库,根据所述数据库中存储的所述服务信息,重新动态获取所述微服务的资源使用率作为第二资源使用率,若所述第二资源使用率大于所述第一资源使用率,将所述第二动态资源使用率作为所述微服务的即时资源使用率;
其中,定时查询由网关发起,定时查询为使用quartz定时任务,quartz的scheduleJob()方法将查询任务和触发器存储至Jobstore数据库,启动调度线程,从数据库中不停的执行被触发的任务,触发器中设置自动触发的时间,如5秒,3秒等。获取数据库中存储的第一资源使用率和服务信息,根据该服务信息对该微服务的资用使用率进行再次动态获取,再次获取到的资源使用率即为第二资源使用率;对比该第二资源使用率与该第一资源使用率。若该第二资源使用率大于该第一资源使用率则将该第二资源使用率作为当前服务的即时资源使用率。
具体地,一种实施方式为,获取该第二资源使用率对应的资源使用状态中的各项指标值,基于每一项对应的优先级策略,进行算法运算,将每一项的运算结果进行求和,获得第一资源使用率A;将该第一资源使用率A与配置中心的配置文件中的资源使用率阈值B进行对比,所述B也是基于每一项的优先级策略,进行算法运算,将每一项的运算结果进行求和而获得。若A>B,向监控中心发送预警指令,并将A对应的各项资源使用状态和服务信息,缓存到数据库,作为静态指标;通过服务信息,定时获取动态的第二资源使用率,该第二资源使用率为C;若C小于A判定服务的资源使用率已经开始下降;若C大于A,则判定服务的资源使用率还在持续上升并将C1作为当前服务的即时资源使用率。
另一种实施方式为,设定第一次获取的资源使用率为P1,第N次获取的资源使用率为Pn,判断P1>P,若假,则不进行任何操作;若真,则将P1写入数据库中。获取P2,判断P2>P1,递归进行对比,每次对比之后,将最大的p值保存的数据库中直到对比到Pn,则限流判断结束;若在对比过程中,判断Pm>Pm-1,若真,则资源使用率呈上升趋势,判断当前该服务的资源使用率是否大于p,若大于p对服务进行限流,否则,不进行限流处理;若对比中碰到服务已被限流,判断Pm<Pm-1,若真,则资源使用率呈下降趋势,判断资源使用率是否小于p,若小于p对服务解除限流,否则,不进行限流处理。
步骤S600,获取多个查询时间点的即时资源使用率,计算两个相邻所述查询时间点的即时资源使用率的变化量,根据所述变化量确定所述微服务的动态增量情况;
分别获取当前微服务相邻查询时间点的即时资源使用率,其中,该相邻查询时间点中,前一时刻的即时资源使用率为第一时刻资源使用率,后一时刻的即时资源使用率为第二时刻资源使用率。计算该第一时刻资源使用率与该第二时刻资源使用率的差值,该差值即为该变化量。
在计算得到相邻查询时间点的即时资源使用率的变化量时,基于该变化量可以对该服务的动态增量情况进行确定。具体地,计算该第一时刻资源使用率与该第二时刻资源使用率的时间差值作为增量时间。缓存即时资源使用率至当前服务对应的自定义模型中,自定义模型在监控下进行,该自定义模型基于该增量时间和变化量,可计算得到该第一时刻资源使用率和第二时刻资源使用率对应的增量斜率。根据该增量斜率则可进一步地确定当前服务的动态增量情况。
步骤S700,基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制。
在获取到微服务的变化量、动态增量情况和即时资源使用率时,根据该变化量、动态增量情况和即时资源使用率确定该服务对应的限制条件。例如,将该即时资源使用率与预设标准阈值进行大小比较,获得比较结果,比较结果为条件一(A),取值为相对于预设标准阈值是大或者小,A(大/小);获取的服务在相邻两个时间节点上的变化量作为条件二(B);当前服务的动态增量情况作为条件三(C)。其中条件一A的结果,判断当前微服务是否超过设定阈值,条件二B的结果,判断当前微服务的资源使用率正在上升或者下降,条件三C代表上升或者下降的快慢。根据该条件一、条件二及条件三的不同结果,确定该微服务是否需要控制,在确定该微服务需要控制时,则对该微服务进行控制。
在本实施例中,实现了对微服务的一种高效联动控制方式,更加适合微服务的服务分散的特点,有效地保证了多个服务在同时处理任务时,***的稳定性。
在本申请的一些实施例中,如图3所示,步骤S200,根据所述服务请求调用对应的微服务执行处理任务包括:
步骤S210,获取初始配置信息,对微服务***进行初始化配置;
步骤S220,判断所述服务请求对应的微服务正在执行的任务数量是否大于预设次数阈值,若大于则对所述服务请求对应的处理任务先进行限流处理,否则正常执行所述处理任务。
初始配置信息由网关获取;在获取到初始配置消息时,对微服务***进行初始化配置。在初始化配置完成时,获取当前服务请求对应的微服务正在执行的任务数量,确定该任务数量是否大于预设次数阈值。若确定该任务数量大于该预设次数阈值,则对该服务请求对应的处理任务进行限流处理;若确定该任务数量不小于该预设次数阈值,则正常执行该服务请求对应的处理任务。
在本实施例中,实现了对正在执行任务的线程数量的判断,在任务数量大于预设次数阈值时,则进行限流处理,避免了高并发的发生,保证***的稳定性。
在本申请的一些实施例中,判断所述服务请求对应的微服务正在执行的任务数量是否大于预设次数阈值包括:
获取所述服务请求对应的微服务当前任务线程的数量,将所述任务线程的数量作为所述服务请求对应的微服务正在执行的任务数量,判断所述任务线程的数量是否大于预设次数阈值;
所述对所述服务请求对应的处理任务先进行限流处理包括:
缓存所述服务请求对应的处理任务,在确定所述微服务中存在旧任务线程执行结束时,中断所述旧任务线程,从线程池中启动新任务线程执行所述处理任务。
基于springcloud的actuator组件对线程资源进行监控,actuator的metrics监控端点能够对http请求进行计数,actuator中Scheduledtasks()方法用于监控程序中的任务状态,若监控到任务在运行状态,则对当前的任务线程的数量进行统计,并将该任务线程的数量作为该服务请求对应的微服务正在执行的任务数量。在确定该任务数量大于预设次数阈值时,缓存该服务请求对应的处理任务。
在确定服务中存在旧任务线程执行结束时,调用interrupt()方法中断该旧任务线程,此时线程池中空闲,从线程池中调用新任务线程执行该服务请求对应的处理任务。其中,线程池为提前创建若干个线程,如果有任务需要处理,线程池里的线程对任务进行处理,处理完之后线程并不会被销毁,而是等待下一个任务。
在本实施例中,实现了对线程资源的监控,避免了反复创建、销毁线程时资源的消耗。
在本申请的一些实施例中,如图4所示,所述资源使用状态包括响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率中的至少一种,步骤S300,所述获取所述资源使用状态对应的第一资源使用率的步骤包括:
步骤S310,获取所述响应时间、所述平均时间延迟、所述并发量、所述http错误响应码百分比、所述cpu使用率和所述内存使用率对应的优先级策略;
步骤S320,根据所述优先级策略,计算所述资源使用状态对应的第一资源使用率。
资源使用状态包括响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率等指标。假设检测的响应时间为a,设定的响应时间为A;通过百分比,获取每一项指标对应的百分率:对指标对应的百分率进行缓存。分别对该资源使用状态包括的各项指标进行检测,在获取到各项指标对应的百分率时,根据该各项指标的百分率则可对该资源使用状态对应的第一资源使用率进行计算。
在一实施例中,将响应时间和平均时间延迟设定为A级;将并发量和http错误响应码百分比设定为B级,将cpu使用率和内存使用率等其他基础资源指标设定为C级;设定A级对应的量值为102,B级对应的量值为101,C级对应的量值为100;该等级设定即为该资源使用状态中各项指标的优先级策略,具体的该运算公式如下:σ(p)即为计算得到的第一资源使用率。
在本实施例中,实现了对资源使用状态中各项不同指标的动态检测,一定程度上有效避免了资源使用率过高的情况,通过cpu使用率和内存使用率的检测,能精确查找并发量过高的服务,对高并发的服务进行精确和快速的处理,一定程度上保证了***的稳定性。
在本申请的一些实施例中,如图5所示,步骤S600,根据所述变化量确定所述微服务的动态增量情况包括:
步骤S610,计算相邻所述查询时间点的时间差值作为增量时间,根据所述增量时间和所述变化量,计算相邻所述查询时间点的即时资源使用率对应的增量斜率;
步骤S620,根据所述增量斜率确定所述微服务的动态增量情况。
在计算得到相邻查询时间点的即时资源使用率的变化量时,计算该相邻的查询时间点的时间差值,该时间差值即为增量时间。基于自定义模型计算该增量时间与该变化量对应的增量斜率。设置时间变化函数为,则增量时间为ΔX,该增量时间上相邻查询时间点的即时资源使用率的变化量为ΔY;则ΔY=f(x+ΔX)-f(x);导数为该导数的实际意义即为增量斜率。
在通过计算得到每两个相邻的查询时间节点的增量斜率时,对得到的每组增量斜率进行对比(两个相邻的查询时间点为一组),得到对比结果,根据该对比结果则可以确定当前服务的动态增量情况。例如,得到A组增量时间上的增量斜率该A组增量时间的上一个增量斜率对比该两组增量斜率,则可以发现A组与B组分别对应的增量斜率正在下降,由此可以得到当前服务的动态增量情况为即时资源使用率的瞬时增长正在逐渐下降。
在本实施例中,实现了对相邻查询时间点的增量斜率的计算,从而进一步地通过该增量斜率对当前服务的动态增量情况进行确定,使得对当前服务的资源使用状态能够进行更精确地判断。
在本申请的一些实施例中,如图6所示,步骤S700,基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制的步骤包括:
步骤S710,基于所述变化量、所述动态增量情况和所述即时资源使用率确定所述微服务的限制条件;
步骤S720,根据所述限制条件,确定是否对当前所述微服务进行限制处理,其中,在所述限制条件为必要限制条件时,对所述微服务进行限制处理,在所述限制条件为非必要限制条件时,不对所述微服务进行限制处理。
在一实施例中,将该即时资源使用率与预设标准阈值进行大小比较,获得比较结果,比较结果为条件一(A),取值为相对于预设标准阈值是大或者小,A(大/4、);获取的服务在相邻两个时间节点上的变化量作为条件二(B),B(20%/-20%);当前服务的动态增量情况作为条件三(C),C(60°/20°)。其中条件一A的结果,判断当前微服务是否超过设定阈值,条件二B的结果,判断当前微服务的资源使用率正在上升或者下降,条件三C代表上升或者下降的快慢。
若A为大,B为正值,C超过45°;则说明当前微服务的资源使用率呈爆发型增长,需及时进行限制,当前该限制条件为I型,即必要限制条件;
若A为大,B为正值,C不超过45°;则说明当前微服务的资源使用率呈缓慢型增长,需及时进行限制,当前该限制条件为I型,即必要限制条件;
若A为小,B为正值,C超过45°;则说明当前微服务的资源使用率呈爆发型增长,需及时进行限制,当前该限制条件为I型,即必要限制条件;
若A为小,B为正值,C不超过45°;则说明当前微服务的资源使用率呈爆发型增长,不需要进行限制,当前该限制条件为II型,即非必要限制条件;
若A为大,B为负值,C超过45°;则说明当前微服务的资源使用率呈爆发型下降,暂时不需进行限制,当前该限制条件为II型,即非必要限制条件;
若A为大,B为负值,C不超过45°;则说明当前微服务的资源使用率呈缓慢型下降,需及时进行限制,当前该限制条件为I型,即必要限制条件;
若A为小,B为负值,C超过45°;则说明当前微服务的资源使用率呈爆发型下降,不需要进行限制,当前该限制条件为II型,即非必要限制条件;
若A为小,B为负值,C不超过45°;则说明当前微服务的资源使用率呈缓慢型下降,不需要进行限制,当前该限制条件为II型,即非必要限制条件。
如表1所示:
条件一A | 条件二B | 条件三C | 限制条件 |
大 | 正值 | >45° | I型 |
大 | 正值 | ≤45° | I型 |
大 | 负值 | >45° | II型 |
大 | 负值 | ≤45° | I型 |
小 | 正值 | >45° | I型 |
小 | 正值 | ≤45° | II型 |
小 | 负值 | >45° | II型 |
小 | 负值 | ≤45° | II型 |
表1
在本申请的一些实施例中,根据所述限制条件,确定是否对当前所述微服务进行限制处理的步骤之后,所述微服务下的服务控制方法还包括:
定时检测所述微服务的服务状态,在确定所述服务状态为限制状态时,对所述微服务进行限制。
服务的服务状态包括启动、暂停、结束、卸载、限制等状态,可以分别使用预设的状态码staus=0,staus=1,staus=2,staus=3、staus=4代表这五种状态。该状态码的具体实现方式为,在服务的状态栏添加新的状态,如启动、暂停、结束、卸载、限制等状态,分别使用预设的状态码绑定该五种服务状态。其中,在服务需要被限制时即服务状态为限制状态时,该限制状态只关闭接收新任务接口,其他处理接口和其他业务接口正常处理原有的任务。
具体地,在根据当前服务的资源使用状态确定该服务需要被限制时,即该服务的限制条件为第一限制条件时,则将该服务的状态码改为对应的限制状态码,如staus=4;定时检测当前服务的服务状态,在检测到当前该服务的状态码为staus=4时,则对该服务进行限制操作。当该服务的限制条件为第二限制条件时,则将该服务的状态码改为对应的启动状态码,如staus=0;定时检测当前服务的服务状态,在检测到当前该服务的状态码为staus=0时,则无需对该服务进行限制的操作。
在本实施例中,实现了根据状态码对当前服务的服务状态的判断,使得通过状态码能够快速明确地得出是否对当前服务进行限制的操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图7,作为对上述图2所示方法的实现,本申请提供了一种微服务下的服务控制装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例所述的微服务下的服务控制装置1000包括:
接收模块1100,用于接收模块,用于接收若干并发的服务请求,根据所述服务请求调用对应的微服务执行处理任务;
其中,所述接收模块包括:
配置单元,用于获取初始配置信息,对微服务***进行初始化配置;
判断单元,用于判断所述服务请求对应的微服务正在执行的任务数量是否大于预设次数阈值,若大于则对所述服务请求对应的处理任务先进行限流处理,否则正常执行所述处理任务。
所述判断单元还包括:
第一获取单元,用于获取所述服务请求对应的微服务当前任务线程的数量,将所述任务线程的数量作为所述服务请求对应的微服务正在执行的任务数量,判断所述任务线程的数量是否大于预设次数阈值;
缓存单元,缓存所述服务请求对应的处理任务,在确定所述微服务中存在旧任务线程执行结束时,中断所述旧任务线程,从线程池中启动新任务线程执行所述处理任务。
该服务请求由多个请求发送端发起,在接收到服务请求时,解析该服务请求得到该服务请求对应的解析内容,根据该解析内容可以获取到该服务请求对应的微服务及处理任务。调用该服务请求对应的服务执行该服务请求对应的处理任务,并向请求发送端发送服务请求被接收成功的响应。
第一获取模块1200,用于在执行所述处理任务时,动态检测当前所述微服务的资源使用状态,获取所述资源使用状态对应的第一资源使用率;
资源使用状态包括:服务响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率中的至少一种。在服务执行该处理任务时,基于轮询的方式动态检测当前该服务的资源使用状态。
其中,所述第一获取模块包括:
第二获取单元,用于获取所述响应时间、所述平均时间延迟、所述并发量、所述http错误响应码百分比、所述cpu使用率和所述内存使用率对应的优先级策略;
第一计算单元,用于根据所述优先级策略,计算所述资源使用状态对应的第一资源使用率。
资源使用状态包括:服务响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率。在服务执行该处理任务时,基于轮询的方式动态检测当前该服务的资源使用状态。
具体地,一种可能的实现方式为,基于采集算法对cpu使用率和内存使用率进行信息采集,例如Process Explorer工具,执行top、jstack等命令查看***资源如响应时间、平均时间延迟、并发量、http错误响应码百分比等使用情况,然后经过解析和算法计算获取cpu和内存的使用率,另一种可能的实现方式直接读取当前操作***的***文件进行获取响应时间、平均时间延迟、并发量、http错误响应码百分比,调用相关操作***的资源采集接口实现类,获取cpu使用率和内存使用率。
在获取到当前该服务的资源使用状态时,基于该资源使用状态即可计算得到当前该服务的第一资源使用率,其中,该第一资源使用率可以为当前该资源使用状态中任一项所对应的指标值,如资源使用状态中cpu使用率所对应的具体数值。除此之外,该第一资源使用率亦可以为综合该资源使用状态计算得到的数值,即对该资源使用状态包括的服务响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率的分别对应的指标值,按照预设计算规则进行综合计算。如按照资源使用状态中每一项所对应的同权重进行求和计算等预设计算方式。
判定模块1300,用于判断所述第一资源使用率是否大于预设的资源使用阈值,在判定所述第一资源使用率大于所述资源使用阈值时,存储所述第一资源使用率和当前所述微服务的服务信息至数据库;
计算当前微服务中资源使用状态对应的第一资源使用率,并获取该微服务对应的预设的资源使用阈值,对比该第一资源使用率与该资源使用阈值。具体地,一种实施方式为,若微服务A的响应时间=500s、平均时间延迟=400s、并发量=1000、http错误响应码百分比=40%、cpu使用率=60%和内存使用率=70%,该微服务A的第一资源使用率则为:
配置中心设定的预设响应时间=300s、预设平均时间延迟=200s、预设并发量=1500、预设http错误响应码百分比=20%、预设cpu使用率=70%和预设内存使用率=80%,则该配置中心设定的资源使用阈值为σ(pc)=1*100+1*100+1*10+1*10+1+1;经比较可知,服务A的第一资源使用率大于配置中心设定的资源使用阈值,存储该微服务A对应的第一资源使用率和当前该服务的服务信息至数据库。其中,该资源使用阈值由配置中心设定。在确定该第一资源使用率大于该资源使用阈值时,发送该预警指令至监控中心。该预警指令为若当前服务的资源使用率超过预设的资源使用阈值,自动触发预警指令到监控中心,同时可展示到监控界面,方便运维人员进行查看。
定时查询模块1400,用于定时查询所述数据库,根据所述数据库中存储的所述服务信息,重新动态获取所述微服务的资源使用率作为第二资源使用率,若所述第二资源使用率大于所述第一资源使用率,将所述第二动态资源使用率作为所述微服务的即时资源使用率;
其中,定时查询由网关发起,定时查询为使用quartz定时任务,quartz的scheduleJob()方法将查询任务和触发器存储至Jobstore数据库,启动调度线程,从数据库中不停的执行被触发的任务,触发器中设置自动触发的时间,如5秒,3秒等。获取数据库中存储的第一资源使用率和服务信息,根据该服务信息对该微服务的资用使用率进行再次动态获取,再次获取到的资源使用率即为第二资源使用率;对比该第二资源使用率与该第一资源使用率。若该第二资源使用率大于该第一资源使用率则将该第二资源使用率作为当前服务的即时资源使用率。
具体地,一种实施方式为,获取该第二资源使用率对应的资源使用状态中的各项指标值,基于每一项对应的优先级策略,进行算法运算,将每一项的运算结果进行求和,获得第一资源使用率A;将该第一资源使用率A与配置中心的配置文件中的资源使用率阈值B进行对比,所述B也是基于每一项的优先级策略,进行算法运算,将每一项的运算结果进行求和而获得。若A>B,向监控中心发送预警指令,并将A对应的各项资源使用状态和服务信息,缓存到数据库,作为静态指标;通过服务信息,定时获取动态的第二资源使用率,该第二资源使用率为C;若C小于A判定服务的资源使用率已经开始下降;若C大于A,则判定服务的资源使用率还在持续上升并将C1作为当前服务的即时资源使用率。
另一种实施方式为,设定第一次获取的资源使用率为P1,第N次获取的资源使用率为Pn,判断P1>P,若假,则不进行任何操作;若真,则将P1写入数据库中。获取P2,判断P2>P1,递归进行对比,每次对比之后,将最大的p值保存的数据库中直到对比到Pn,则限流判断结束;若在对比过程中,判断Pm>Pm-1,若真,则资源使用率呈上升趋势,判断当前该服务的资源使用率是否大于p,若大于p对服务进行限流,否则,不进行限流处理;若对比中碰到服务已被限流,判断Pm<Pm-1,若真,则资源使用率呈下降趋势,判断资源使用率是否小于p,若小于p对服务解除限流,否则,不进行限流处理。
第二获取模块1500,用于获取多个查询时间点的即时资源使用率,计算两个相邻所述查询时间点的即时资源使用率的变化量,根据所述变化量确定所述微服务的动态增量情况;
其中,所述第二获取模块包括:
第二计算单元,用于计算相邻所述查询时间点的时间差值作为增量时间,根据所述增量时间和所述变化量,计算相邻所述查询时间点的即时资源使用率对应的增量斜率;
第一确定单元,用于根据所述增量斜率确定所述微服务的动态增量情况。
分别获取当前微服务相邻查询时间点的即时资源使用率,其中,该相邻查询时间点中,前一时刻的即时资源使用率为第一时刻资源使用率,后一时刻的即时资源使用率为第二时刻资源使用率。计算该第一时刻资源使用率与该第二时刻资源使用率的差值,该差值即为该变化量。
在计算得到相邻查询时间点的即时资源使用率的变化量时,基于该变化量可以对该服务的动态增量情况进行确定。具体地,计算该第一时刻资源使用率与该第二时刻资源使用率的时间差值作为增量时间。缓存即时资源使用率至当前服务对应的自定义模型中,自定义模型在监控下进行,该自定义模型基于该增量时间和变化量,可计算得到该第一时刻资源使用率和第二时刻资源使用率对应的增量斜率。根据该增量斜率则可进一步地确定当前服务的动态增量情况。
控制模块1600,用于基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制;
其中,所述控制模块包括:
第二确定单元,用于基于所述变化量、所述动态增量情况和所述即时资源使用率确定所述微服务的限制条件;
处理单元,用于根据所述限制条件,确定是否对当前所述微服务进行限制处理,其中,在所述限制条件为必要限制条件时,对所述微服务进行限制处理,在所述限制条件为非必要限制条件时,不对所述微服务进行限制处理。
在获取到微服务的变化量、动态增量情况和即时资源使用率时,根据该变化量、动态增量情况和即时资源使用率确定该服务对应的限制条件。例如,将该即时资源使用率与预设标准阈值进行大小比较,获得比较结果,比较结果为条件一(A),取值为相对于预设标准阈值是大或者小,A(大/小);获取的服务在相邻两个时间节点上的变化量作为条件二(B);当前服务的动态增量情况作为条件三(C)。其中条件一A的结果,判断当前微服务是否超过设定阈值,条件二B的结果,判断当前微服务的资源使用率正在上升或者下降,条件三C代表上升或者下降的快慢。根据该条件一、条件二及条件三的不同结果,确定该微服务是否需要控制,在确定该微服务需要控制时,则对该微服务进行控制。
检测单元,用于定时检测所述微服务的服务状态,在确定所述服务状态为限制状态时,对所述微服务进行限制。
服务的服务状态包括启动、暂停、结束、卸载、限制等状态,可以分别使用预设的状态码staus=0,staus=1,staus=2,staus=3、staus=4代表这五种状态。该状态码的具体实现方式为,在服务的状态栏添加新的状态,如启动、暂停、结束、卸载、限制等状态,分别使用预设的状态码绑定该五种服务状态。其中,在服务需要被限制时即服务状态为限制状态时,该限制状态只关闭接收新任务接口,其他处理接口和其他业务接口正常处理原有的任务。
具体地,在根据当前服务的资源使用状态确定该服务需要被限制时,即该服务的限制条件为第一限制条件时,则将该服务的状态码改为对应的限制状态码,如staus=4;定时检测当前服务的服务状态,在检测到当前该服务的状态码为staus=4时,则对该服务进行限制操作。当该服务的限制条件为第二限制条件时,则将该服务的状态码改为对应的启动状态码,如staus=0;定时检测当前服务的服务状态,在检测到当前该服务的状态码为staus=0时,则无需对该服务进行限制的操作。
在本实施例中,实现了对服务的一种高效联动控制方式,更加适合微服务的服务分散的特点,有效地保证了多个服务在同时处理任务时,***的稳定性。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图8,图8为本实施例计算机设备基本结构框图。
所述计算机设备2000包括通过***总线相互通信连接存储器2001、处理器2002、网络接口2003。需要指出的是,图中仅示出了具有组件2001-2003的计算机设备2000,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器2001至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器2001可以是所述计算机设备2000的内部存储单元,例如该计算机设备2000的硬盘或内存。在另一些实施例中,所述存储器2001也可以是所述计算机设备2000的外部存储设备,例如该计算机设备2000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器2001还可以既包括所述计算机设备2000的内部存储单元也包括其外部存储设备。本实施例中,所述存储器2001通常用于存储安装于所述计算机设备2000的操作***和各类应用软件,例如微服务下的服务控制方法的程序代码等。此外,所述存储器2001还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器2002在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器2002通常用于控制所述计算机设备2000的总体操作。本实施例中,所述处理器2002用于运行所述存储器2001中存储的程序代码或者处理数据,例如运行所述微服务下的服务控制方法的程序代码。
所述网络接口2003可包括无线网络接口或有线网络接口,该网络接口2003通常用于在所述计算机设备2000与其他电子设备之间建立通信连接。
在本实施例中,所述计算机设备实现了,对微服务的一种高效联动控制方式,更加适合微服务的服务分散的特点,有效地保证了多个服务在同时处理任务时,***的稳定性。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质可以为一种非易失性的计算机可读存储介质,所述计算机可读存储介质存储有微服务下的服务控制程序,所述微服务下的服务控制程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的微服务下的服务控制方法的步骤。
在本实施例中,所述计算机可读存储介质实现了,对微服务的一种高效联动控制方式,更加适合微服务的服务分散的特点,有效地保证了多个服务在同时处理任务时,***的稳定性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种微服务下的服务控制方法,其特征在于,包括下述步骤:
接收若干并发的服务请求,根据所述服务请求调用对应的微服务执行处理任务;
在执行所述处理任务时,动态检测当前所述微服务的资源使用状态,获取所述资源使用状态对应的第一资源使用率;
判断所述第一资源使用率是否大于预设的资源使用阈值,在判定所述第一资源使用率大于所述资源使用阈值时,存储所述第一资源使用率和当前所述微服务的服务信息至数据库;
定时查询所述数据库,根据所述数据库中存储的所述服务信息,重新动态获取所述微服务的资源使用率作为第二资源使用率,若所述第二资源使用率大于所述第一资源使用率,将所述第二动态资源使用率作为所述微服务的即时资源使用率;
获取多个查询时间点的即时资源使用率,计算两个相邻所述查询时间点的即时资源使用率的变化量,根据所述变化量确定所述微服务的动态增量情况;
基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制。
2.根据权利要求1所述的微服务下的服务控制方法,其特征在于,所述根据所述服务请求调用对应的微服务执行处理任务的步骤包括:
获取初始配置信息,对微服务***进行初始化配置;
判断所述服务请求对应的微服务正在执行的任务数量是否大于预设次数阈值,若大于则对所述服务请求对应的处理任务先进行限流处理,否则正常执行所述处理任务。
3.根据权利要求2所述的微服务下的服务控制方法,其特征在于,所述判断所述服务请求对应的微服务正在执行的任务数量是否大于预设次数阈值的步骤包括:
获取所述服务请求对应的微服务当前任务线程的数量,将所述任务线程的数量作为所述服务请求对应的微服务正在执行的任务数量,判断所述任务线程的数量是否大于预设次数阈值;
所述对所述服务请求对应的处理任务先进行限流处理包括:
缓存所述服务请求对应的处理任务,在确定所述微服务中存在旧任务线程执行结束时,中断所述旧任务线程,从线程池中启动新任务线程执行所述处理任务。
4.根据权利要求1所述的微服务下的服务控制方法,其特征在于,所述资源使用状态包括响应时间、平均时间延迟、并发量、http错误响应码百分比、cpu使用率和内存使用率中的至少一种,所述获取所述资源使用状态对应的第一资源使用率的步骤包括:
获取所述响应时间、所述平均时间延迟、所述并发量、所述http错误响应码百分比、所述cpu使用率和所述内存使用率对应的优先级策略;
根据所述优先级策略,计算所述资源使用状态对应的第一资源使用率。
5.根据权利要求1所述的微服务下的服务控制方法,其特征在于,所述根据所述变化量确定所述微服务的动态增量情况的步骤包括:
计算相邻所述查询时间点的时间差值作为增量时间,根据所述增量时间和所述变化量,计算相邻所述查询时间点的即时资源使用率对应的增量斜率;
根据所述增量斜率确定所述微服务的动态增量情况。
6.根据权利要求1所述的微服务下的服务控制方法,其特征在于,所述基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制的步骤包括:
基于所述变化量、所述动态增量情况和所述即时资源使用率确定所述微服务的限制条件;
根据所述限制条件,确定是否对当前所述微服务进行限制处理,其中,在所述限制条件为必要限制条件时,对所述微服务进行限制处理,在所述限制条件为非必要限制条件时,不对所述微服务进行限制处理。
7.根据权利要求6所述的微服务下的服务控制方法,其特征在于,所述根据所述限制条件,确定是否对当前所述微服务进行限制处理的步骤之后,所述微服务下的服务控制方法还包括:
定时检测所述微服务的服务状态,在确定所述服务状态为限制状态时,对所述微服务进行限制。
8.一种微服务下的服务控制装置,其特征在于,包括:
接收模块,用于接收若干并发的服务请求,根据所述服务请求调用对应的微服务执行处理任务;
第一获取模块,用于在执行所述处理任务时,动态检测当前所述微服务的资源使用状态,获取所述资源使用状态对应的第一资源使用率;
判定模块,用于判断所述第一资源使用率是否大于预设的资源使用阈值,在判定所述第一资源使用率大于所述资源使用阈值时,存储所述第一资源使用率和当前所述微服务的服务信息至数据库;
定时查询模块,用于定时查询所述数据库,根据所述数据库中存储的所述服务信息,重新动态获取所述微服务的资源使用率作为第二资源使用率,若所述第二资源使用率大于所述第一资源使用率,将所述第二动态资源使用率作为所述微服务的即时资源使用率;
第二获取模块,用于获取多个查询时间点的即时资源使用率,计算两个相邻所述查询时间点的即时资源使用率的变化量,根据所述变化量确定所述微服务的动态增量情况;
控制模块,用于基于所述变化量、所述动态增量情况和所述即时资源使用率对当前所述微服务进行控制。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的微服务下的服务控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的微服务下的服务控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010163908.XA CN111475373A (zh) | 2020-03-10 | 2020-03-10 | 微服务下的服务控制方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010163908.XA CN111475373A (zh) | 2020-03-10 | 2020-03-10 | 微服务下的服务控制方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111475373A true CN111475373A (zh) | 2020-07-31 |
Family
ID=71748244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010163908.XA Pending CN111475373A (zh) | 2020-03-10 | 2020-03-10 | 微服务下的服务控制方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475373A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130995A (zh) * | 2020-09-18 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种实时数据处理方法和装置 |
CN112367268A (zh) * | 2020-11-24 | 2021-02-12 | 苏宁云计算有限公司 | 用于微服务的限流方法及装置 |
CN112491581A (zh) * | 2020-10-30 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务性能监控管理方法及装置 |
CN112685261A (zh) * | 2021-01-05 | 2021-04-20 | 武汉长江通信智联技术有限公司 | 一种基于观察者模式的微服务运行状态监控方法 |
CN112762877A (zh) * | 2020-12-28 | 2021-05-07 | 成都国铁电气设备有限公司 | 一种地铁接触网刚性接触线磨耗预警方法及装置 |
CN112799742A (zh) * | 2021-02-09 | 2021-05-14 | 上海海事大学 | 一种基于微服务的机器学习实训***及方法 |
CN113037644A (zh) * | 2021-03-25 | 2021-06-25 | 腾讯音乐娱乐科技(深圳)有限公司 | 分布式限流的方法和装置 |
CN114039893A (zh) * | 2021-11-08 | 2022-02-11 | 航天信息股份有限公司 | 一种api网关限速方法及装置 |
CN114338539A (zh) * | 2022-01-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 并发控制方法及装置、网络设备、可读存储介质 |
CN114915647A (zh) * | 2021-01-28 | 2022-08-16 | 复旦大学 | 基于微服务的前沿装备远程互动体验*** |
CN114915663A (zh) * | 2022-03-21 | 2022-08-16 | 北京沃东天骏信息技术有限公司 | 请求响应方法、装置、***、电子设备和介质 |
CN117527807A (zh) * | 2023-11-21 | 2024-02-06 | 扬州万方科技股份有限公司 | 一种多微云任务调度方法、装置及设备 |
-
2020
- 2020-03-10 CN CN202010163908.XA patent/CN111475373A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130995B (zh) * | 2020-09-18 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种实时数据处理方法和装置 |
CN112130995A (zh) * | 2020-09-18 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种实时数据处理方法和装置 |
CN112491581A (zh) * | 2020-10-30 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务性能监控管理方法及装置 |
CN112367268B (zh) * | 2020-11-24 | 2022-07-05 | 苏宁云计算有限公司 | 用于微服务的限流方法及装置 |
CN112367268A (zh) * | 2020-11-24 | 2021-02-12 | 苏宁云计算有限公司 | 用于微服务的限流方法及装置 |
CN112762877A (zh) * | 2020-12-28 | 2021-05-07 | 成都国铁电气设备有限公司 | 一种地铁接触网刚性接触线磨耗预警方法及装置 |
CN112685261A (zh) * | 2021-01-05 | 2021-04-20 | 武汉长江通信智联技术有限公司 | 一种基于观察者模式的微服务运行状态监控方法 |
CN114915647A (zh) * | 2021-01-28 | 2022-08-16 | 复旦大学 | 基于微服务的前沿装备远程互动体验*** |
CN114915647B (zh) * | 2021-01-28 | 2023-08-29 | 复旦大学 | 基于微服务的前沿装备远程互动体验*** |
CN112799742A (zh) * | 2021-02-09 | 2021-05-14 | 上海海事大学 | 一种基于微服务的机器学习实训***及方法 |
CN112799742B (zh) * | 2021-02-09 | 2024-02-13 | 上海海事大学 | 一种基于微服务的机器学习实训***及方法 |
CN113037644A (zh) * | 2021-03-25 | 2021-06-25 | 腾讯音乐娱乐科技(深圳)有限公司 | 分布式限流的方法和装置 |
CN114039893A (zh) * | 2021-11-08 | 2022-02-11 | 航天信息股份有限公司 | 一种api网关限速方法及装置 |
CN114338539A (zh) * | 2022-01-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 并发控制方法及装置、网络设备、可读存储介质 |
CN114915663A (zh) * | 2022-03-21 | 2022-08-16 | 北京沃东天骏信息技术有限公司 | 请求响应方法、装置、***、电子设备和介质 |
CN117527807A (zh) * | 2023-11-21 | 2024-02-06 | 扬州万方科技股份有限公司 | 一种多微云任务调度方法、装置及设备 |
CN117527807B (zh) * | 2023-11-21 | 2024-05-31 | 扬州万方科技股份有限公司 | 一种多微云任务调度方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475373A (zh) | 微服务下的服务控制方法、装置、计算机设备及存储介质 | |
CN111813513A (zh) | 基于分布式的实时任务调度方法、装置、设备及介质 | |
CN115277566B (zh) | 数据访问的负载均衡方法、装置、计算机设备及介质 | |
JPWO2005017736A1 (ja) | ディスクアレイ装置におけるボトルネックを検出するシステムおよびプログラム | |
CN109327540A (zh) | 电子装置、服务器负载均衡方法及存储介质 | |
CN111464616A (zh) | 自动调节应用负载服务数量的方法、服务器及存储介质 | |
CN114095567A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN111813573A (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN114490078A (zh) | 一种微服务的动态缩扩容方法、装置及设备 | |
CN111813518A (zh) | 机器人预警方法、装置、计算机设备及存储介质 | |
CN113642959B (zh) | 物品配送任务分配方法、装置、计算机设备及存储介质 | |
CN112130936B (zh) | 基于轮询的数据调用方法、装置、设备及存储介质 | |
CN117319400A (zh) | 一种服务处理节点调整方法、装置、设备及其存储介质 | |
CN111245928A (zh) | 基于超融合架构的资源调节方法、物联网服务器及介质 | |
CN113342502B (zh) | 数据湖的性能诊断方法、装置、计算机设备及存储介质 | |
CN112052077A (zh) | 软件任务管理的方法、装置、设备、介质 | |
WO2023066258A1 (zh) | 隐私数据的数据处理方法、装置、计算机设备及介质 | |
CN114675845A (zh) | 信息年龄优化方法、装置、计算机设备及存储介质 | |
CN114356582A (zh) | 一种基于边缘云计算的拓展方法、***、设备及介质 | |
CN110597682B (zh) | 一种应用部署方法、装置、计算机设备及存储介质 | |
CN114138401A (zh) | 基于人工智能的容器配置方法、装置、设备及介质 | |
CN114048059A (zh) | 接口的超时时间调整方法、装置、计算机设备及存储介质 | |
CN114238157A (zh) | 工作量证明的获取装置、方法、电子设备、存储介质 | |
CN114221964A (zh) | 一种访问请求处理方法、装置、计算机设备及存储介质 | |
CN113242302A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 |
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 |