System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别是涉及一种消息处理方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
1、随着计算机技术的发展,在用户消息、应用程序通知、异步服务通知、业务系统通知、物联网设备信令等各种场景下,所涉及到的数据载荷和数据收发频率越来越庞大,这对处理这些消息的系统提出了更高的要求。
2、在相关技术中,为了兼顾下游系统的消息接收能力,常常需要控制消息下发的速率。然而,相关技术中消息流量控制不够精确,容易出现超过流量限值,从而,导致下游系统崩溃的风险。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够提高消息流量控制的精确性的消息处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供了一种消息处理方法。所述方法包括:
3、从待发送消息队列中取出一批待发送消息,所述待发送消息队列中的待发送消息的发送优先级相同,所述发送优先级根据消息类型确定;
4、确定与所述发送优先级对应的流量控制阈值,所述流量控制阈值是单位时间内的消息发送数量上限;
5、以所述流量控制阈值与所述一批待发送消息的消息数量的差值,作为队列下标,查询与所述待发送消息队列对应的历史消息信息记录队列中与所述队列下标对应的发送时间;其中,所述历史消息信息记录队列用于记录历史消息的发送时间与队列下标,所述历史消息源自所述待发送消息队列;
6、若当前时间与查询到的所述发送时间的差值大于单位时间,则将所述
7、若当前时间与查询到的所述发送时间的差值小于或等于单位时间,则生成拒绝发送所述一批待发送消息的控制指令。
8、第二方面,本申请还提供了一种消息处理装置。所述装置包括:
9、获取模块,用于从待发送消息队列中取出一批待发送消息,所述待发送消息队列中的待发送消息的发送优先级相同,所述发送优先级根据消息类型确定;
10、确定模块,用于确定与所述发送优先级对应的流量控制阈值,所述流量控制阈值是单位时间内的消息发送数量上限;
11、查询模块,用于以所述流量控制阈值与所述一批待发送消息的消息数量的差值,作为队列下标,查询与所述待发送消息队列对应的历史消息信息记录队列中与所述队列下标对应的发送时间;其中,所述历史消息信息记录队列用于记录历史消息的发送时间与队列下标,所述历史消息源自所述待发送消息队列;
12、生成模块,用于若当前时间与查询到的所述发送时间的差值大于单位时间,则将所述当前时间作为所述一批待发送消息的发送时间加入所述历史消息信息记录队列,并生成发送所述一批待发送消息的控制指令;
13、所述生成模块,还用于若当前时间与查询到的所述发送时间的差值小于或等于单位时间,则生成拒绝发送所述一批待发送消息的控制指令。
14、在一些实施例中,所述生成模块,还用于等待预设时间间隔后,重新根据当前时间计算当前时间与查询到的所述发送时间的差值;若所述差值大于单位时间,则根据所述当前时间将所述一批待发送消息加入所述历史消息信息记录队列,并生成发送所述一批待发送消息的控制指令;若所述差值小于或等于单位时间,则再次生成拒绝发送所述一批待发送消息的控制指令。
15、在一些实施例中,所述装置还包括添加模块,所述添加模块,用于接收来自分布式业务节点发送的消息载荷;根据所述消息载荷的消息类型,确定对应的发送优先级;将所述消息载荷添加至多个待发送消息队列中与所述发送优先级对应的待发送消息队列;其中,所述多个待发送消息队列中的每个待发送消息队列对应不同的发送优先级,且对应不同的流量控制阈值。
16、在一些实施例中,所述装置还包括裁剪模块,所述裁剪模块,用于确定所述历史消息信息记录队列中队列元素的数量;若所述队列元素的数量超过阈值,则对所述历史消息信息记录队列的队首进行裁剪处理。
17、在一些实施例中,所述确定模块,用于获取与所述发送优先级对应的当前流量控制阈值;获取所述待发送消息队列中待发送消息的当前消息数量;获取所述待发送消息的消息类型对应的设定消息延时;根据所述当前消息数量、所述当前流量控制阈值确定所述待发送消息队列的预测消息延时;若所述预测消息延时小于或等于所述设定消息延时,则保持与所述发送优先级对应的当前流量控制阈值不变;若所述预测消息延时大于所述设定消息延时,则调大与所述发送优先级对应的当前流量控制阈值。
18、在一些实施例中,若存在发送优先级不同的多个待发送消息队列,则所述确定模块,用于若所述预测消息延时大于所述设定消息延时,则保持所述多个待发送消息队列各自的发送优先级所对应的流量控制阈值之和为目标数值的情况下,按照各自的发送优先级的优先级顺序,根据所述目标数值为相应的待发送消息队列重新确定相应的流量控制阈值。
19、在一些实施例中,所述确定模块,用于按照发送优先级的优先级顺序,迭代地将相应的待发送消息队列中的消息数量与相应消息类型对应的设定消息延时之比,作为相应发送优先级的流量控制阈值;根据所述目标数值、已确定的相应发送优先级的流量控制阈值,确定剩余发送优先级对应的流量控制阈值之和,直至剩余发送优先级对应的流量控制阈值之和为0时,结束迭代。
20、在一些实施例中,所述装置还包括调整模块,所述调整模块,用于按照重新确定的流量控制阈值,确定各个待发送消息队列各自发送优先级对应的流量控制阈值的调整方向,所述调整方向为调大或调小;对调整方向为调小的发送优先级对应的流量控制阈值进行调整后,再对调整方向为调大的发送优先级对应的流量控制阈值进行调整。
21、在一些实施例中,所述生成模块,还用于若所述一批待发送消息为首批待发送消息,则将所述当前时间作为所述一批待发送消息的发送时间加入所述历史消息信息记录队列,并生成发送所述一批待发送消息的控制指令。
22、在一些实施例中,所述确定模块,还用于根据各消息类型各自对应的时效性要求,确定所述消息类型的发送优先级,所述消息类型对应的时效性要求越高,所述消息类型的发送优先级越高。
23、第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述消息处理方法的步骤。
24、第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述消息处理方法的步骤。
25、第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述消息处理方法的步骤。
26、上述消息处理方法、装置、计算机设备、存储介质和计算机程序产品,通过从待发送消息队列中取出一批待发送消息,待发送消息队列中的待发送消息的发送优先级相本文档来自技高网...
【技术保护点】
1.一种消息处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述若当前时间与查询到的所述发送时间的差值小于或等于单位时间,则生成拒绝发送所述一批待发送消息的控制指令之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述当前时间作为所述一批待发送消息的发送时间加入所述历史消息信息记录队列之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述确定与所述发送优先级对应的流量控制阈值,包括:
6.根据权利要求5所述的方法,其特征在于,若存在发送优先级不同的多个待发送消息队列,则所述若所述预测消息延时大于所述设定消息延时,则调大与所述发送优先级对应的当前流量控制阈值,包括:
7.根据权利要求6所述的方法,其特征在于,所述保持所述多个待发送消息队列各自的发送优先级所对应的流量控制阈值之和为目标数值的情况下,按照各自的发送优先级的优先级顺序,根据所述目标数值为相应的待发送消息队列重新确定相应的流
8.根据权利要求6所述的方法,其特征在于,在所述按照各自的发送优先级的优先级顺序,根据所述目标数值为相应的待发送消息队列重新确定相应的流量控制阈值之后,所述方法还包括:
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
11.一种消息处理装置,其特征在于,所述装置包括:
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种消息处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述若当前时间与查询到的所述发送时间的差值小于或等于单位时间,则生成拒绝发送所述一批待发送消息的控制指令之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述当前时间作为所述一批待发送消息的发送时间加入所述历史消息信息记录队列之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述确定与所述发送优先级对应的流量控制阈值,包括:
6.根据权利要求5所述的方法,其特征在于,若存在发送优先级不同的多个待发送消息队列,则所述若所述预测消息延时大于所述设定消息延时,则调大与所述发送优先级对应的当前流量控制阈值,包括:
7.根据权利要求6所述的方法,其特征在于,所述保持所述多个待发送消息队列各自的发送优先级所对应的流量控制阈值之和为目标数值的情况下,按照各自的发送优先级的优先级...
【专利技术属性】
技术研发人员:刘夏楠,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。