[发明专利]一种微服务线程队列堆积处理方法在审

专利信息
申请号: 202211302916.3 申请日: 2022-10-24
公开(公告)号: CN115658342A 公开(公告)日: 2023-01-31
发明(设计)人: 赵刚;庄菁雄 申请(专利权)人: 上海赛可出行科技服务有限公司
主分类号: G06F9/54 分类号: G06F9/54;G06F11/07
代理公司: 暂无信息 代理人: 暂无信息
地址: 201805 上海市嘉定区安*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 微服 线程 队列 堆积 处理 方法
【权利要求书】:

1.一种微服务线程队列堆积处理方法,其特征在于,包括以下步骤:

S1、建立微服务线程队列模型:

每一个微服务内部建立一个接收队列,该队列为有界队列,长度为a,a≥10000,启动b个消费者线程,b≥100,b个消费者线程公平的消费队列中的消息;

S2、队列模型分配时间标志和汇总处理情况:

(a)服务调用方调用服务提供方的消息发送方法:

具体为所发送的消息报文必须附带以下2个关键字段:timeout和msgType;

(a1)等待响应超时时间timeout,该字段表示服务调用方在等待timeout秒后,未收到响应,则认为超时,不再继续等待;

(a2)消息类型msgType,表示服务提供方惟一的消息类型,如手机号登录、发送登录短信等,服务提供者的消息类型集合记作Q;

(b)服务提供方接收消息入队方法:

在服务提供方接收到服务调用方的请求报文后,从报文中获得timeout和msgType,并记录接收到报文请求的时间为入队时间enQueueTime,把请求内容,enQueueTime,timeout和msgType作为一个数据元素放入队列;

(c)服务提供方到达次数周期汇总方法:

对每个msgType每分钟到达情况做一次到达汇总计算,计算消息类型的到达次数;

具体为,服务提供方接收到请求后,对每一个请求的msgType,累计1分钟内的msgType的个数,求得到达次数arriveCount,t时刻msgType为m的到达次数记作g(m,t),同理t-1时刻msgType为m的到达次数记作g(m,t-1);

(d)服务提供方消费者数据元素出队方法,服务提供方有b个消费者线程,若队列不为空,某个消费者线程从队列中出队一个数据元素;

(e)服务提供方对该数据元素的业务处理方法:

(e1)某一数据元素出队后,记录当前时间作为该请求出队时间outQueueTime;

(e2)对该数据元素中的消息内容进行业务处理,其处理时间记为handleTime;

(f)服务提供方对处理效率的周期汇总方法:

对每个msgType每分钟处理情况做一次汇总计算,求平均处理时间avgHandleTime;公式如下:

avgHandleTime(msgType)=handleTime(msgType)/count(msgType);

count(msgType)为1分钟内的处理的相同msgType的数据元素个数;

ΣhandleTime(msgType)为1分钟内的处理的相同msgType的数据元素的总处理时间之和,求得平均处理时间avgHandleTime(msgType);

t时刻msgType为m的平均处理时间avgHandleTime(msgType,t)简化记作f(m,t);

同理,t-1时刻msgType为m的平均处理时间简化记作f(m,t-1);

S3、检测队列堆积的方法:

若发生下面2种情况,判定队列堆积:

(1)服务提供方接收到新消息,但此时队列长度已达a,则无法继续入队,因队列满队列堆积,此时丢弃该请求,记下首次堆积时刻为r,此时上个时刻未堆积,若上个时刻已堆积,则已在上个时刻检测到;

(2)从队列中出队后,计算outQueueTime,检查outQueueTime-enQueueTimetimeout,则因此请求调用方已不再等待其响应结果,没有必要继续处理,所以丢弃该请求;若连续累计有c条请求都需要丢弃,则判定队列已堆积,记下首次堆积时刻为r,此时上个时刻未堆积,若上个时刻已堆积,则已在上个时刻检测到;

S4、队列堆积的恢复方法:

因服务提供方消息太多或处理速度低于服务调用方的发放速度,而服务调用方感知到超时后,又会不停重发请求给服务提供方;若不能及时恢复队列,则会发生链式传导,最终系统各服务均发生风险;具体恢复方法为:

(1)系统恢复,历史消息调用方已不再等待,没有必要处理失效的消息,先清空队列中的所有消息进行系统恢复;

(2)自动扩容,增加服务提供方的消费能力,具体可为:检测若cpu30%,则线程数增大100%,若30%cpu50%,则线程数增大30%;

S5、队列堆积的溯源方法:

在队列堆积的情况下,需找到哪些消息导致的堆积;具体方法为:

(1)对平均处理时间太长的消息类型溯源;

对于所有的消息类型msgType,m∈Q,若f(m,r)α*f(m,r-1),则m放入集合E,E为处理时间长的堆积消息类型集合,α≥2,α为预设阈值;

(2)对到达速率太快的消息类型溯源;

对于所有的消息类型msgType,m∈Q,若g(m,r)α*g(m,r-1),则m放入集合H,H为到达速率太快的堆积消息类型集合,β≥2,β为预设阈值;

最终在堆积时刻r,找到导致堆积的消息类型集合E和H。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海赛可出行科技服务有限公司,未经上海赛可出行科技服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202211302916.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top