一种消息计数的纠偏方法和装置制造方法及图纸

技术编号:16887166 阅读:51 留言:0更新日期:2017-12-27 04:57
本申请实施例公开了一种消息计数的纠偏方法和装置,根据被队列切片接收的消息均会被分配编号,且编号的数值按照消息的接收顺序依次递增的特点,根据所述队列切片中已分配编号的数值范围确定出大于已分配编号最大值的第一计数阈值。根据所述第一计数阈值开始对所述队列切片中消息进行计数,通过判断成功存入的消息和成功取出的消息的编号与所述第一计数阈值之间关系增减计数值,由此计数结果能够准确统计出所述队列切片中实际保存的消息个数,并将计数结果作为纠正故障可能导致的计数偏差的依据,减少或去除了处理设备故障可能对消息计数准确性的影响,所述队列切片中消息计数的高准确性进一步提升了消息计数的适用范围。

A correction method and device for message counting

The embodiment of the invention discloses a method and a device for correcting message count, according to the received message queue sections will be assigned number, and the number of the numerical characteristics according to the sequence of messages received in increasing numbers, according to the numerical assigned the queue sections of the range determined by the first count is greater than the threshold has been assigned the maximum number of. According to the first count threshold began to count the message queue section, or the relationship between storing through judging the news and news successfully removed and the number of the first count threshold value, the counting result can accurately count the number actually save the queue in the news section, counting and deviation the counting result as the correct fault may cause the basis to reduce or remove the equipment fault may affect the accuracy of the message count, high accuracy of message count the queue in the section to further enhance the scope of message counting.

【技术实现步骤摘要】
一种消息计数的纠偏方法和装置
本申请涉及数据处理领域,特别是涉及一种消息计数的纠偏方法和装置。
技术介绍
消息(英文:Message)属于一种数据单位,在计算机之间的数据传输过程中,消息可以作为承载数据的载体。而消息队列可以视为消息传输过程中保存消息的容器,一个消息队列中一般排列有多个消息。为了能够高并发的处理消息队列中的消息,传统的消息处理方式中,可以将一个消息队列划分为多个队列切片,再按照特定的算法将这个消息队列中的消息分发到这多个队列切片中。队列切片是用于存储消息的存储单元,设置在服务器等处理设备中,一个消息队列的不同队列切片可以设置在相同或分别设置在不同的处理设备中,由于每个队列切片可以独立提供消息写入和/或读出服务,故可以实现对一个消息队列中消息的并行处理。为了能够有效的管理队列切片例如确定向队列切片中分发消息的数量等,需要队列切片能够准确统计存储在本地的消息数量。然而由于处理设备、存储磁盘的故障时有发生,尤其是在分布式大集群的应用场景下,处理设备、存储磁盘发生故障属于大概率事件。在处理设备、存储磁盘发生故障切换(英文:failover)或者故障导致重新加载等故障期间,由于队列切片所提供的消息存取服务的不确定性,很容易导致队列切片的消息计数出现偏差。而目前并没有有效的手段可以消除这些偏差,导致目前队列切片的消息计数的准确性不高,那么根据多个队列切片的消息计数统计得到的消息队列的消息计数也不会具备准确性,只能用于反映消息队列中消息数量的大致情况而不能反映真实情况,所以无法将消息计数用于逻辑判断中,难以发挥消息计数本身应有的实质作用。
技术实现思路
为了解决上述技术问题,本申请提供了一种消息计数的纠偏方法和装置,减少或去除了处理设备故障可能对消息计数准确性的影响,所述队列切片中消息计数的高准确性进一步提升了消息计数的适用范围。本申请实施例公开了如下技术方案:一种消息计数的纠偏方法,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述方法包括:根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。可选的,所述完成计数,包括:当编号为所述第一计数阈值的消息从所述消息切片中取出时,确定完成计数。可选的,所述根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中还包括:若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值的步骤,所述第二计数阈值大于所述第一计数阈值。可选的,所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,包括:根据所述队列切片中已分配编号的数值范围确定出符合预设条件的第一编号;根据所述第一编号和预设数值确定出所述第一计数阈值。可选的,在所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值之前,还包括:获取针对所述队列切片的消息请求QPS,所述消息请求包括用于向所述队列切片存入或取出消息的请求;若所述消息请求QPS大于预设速率,执行所述根据所述队列切片中已存消息的编号的数值范围确定出第一计数阈值的步骤。可选的,若所述消息请求QPS小于所述预设速率,还包括:根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第二编号;从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数;若遍历完所述队列切片中已存消息,且通过遍历所记录的消息总数量小于统计阈值,则根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第三编号;若所述第二编号等于所述第三编号,将所述消息总数量作为所述队列切片纠偏后的消息计数。可选的,所述从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数,还包括:若遍历完所述队列切片中已存消息之前,记录遍历到的消息数已大于所述统计阈值,则停止遍历已存消息;重新执行所述获取针对所述队列切片的消息请求QPS的步骤。可选的,所述根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中还包括:若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述获取针对所述队列切片的消息请求QPS的步骤,所述第二计数阈值大于所述第一计数阈值。可选的,还包括:向主服务器上传所述队列切片纠偏后的消息计数,以便所述主服务器用于统计所述消息队列的消息数量。一种消息计数的纠偏装置,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述装置包括:第一确定单元,用于根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;计数单元,用于根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;第一纠偏单元,用于当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。可选的,所述计算单元还用于当编号为所述第一计数阈值的消息从所述消息切片中取出时,确定完成计数。可选的,所述计数单元还用于若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值的步骤,所述第二计数阈值大于所述第一计数阈值。可选的,所述第一确定单元具体用于根据所述队列切片中已分配编号的数值范围确定出符合预设条件的第一编号;根据所述第一编号和预设数值确定出所述第一计数阈值。可选的,在触发所述第一确定单元之前,还包括:获取单元,用于获取针对所述队列切片的消息请求QPS,所述消息请求包括用于向所述队列切片存入或取出消息的请求;判断单元,用于若所述消息请求QPS大于预设速率,触发所述确定单元。可选的,若所述判断单元的判断结果为所述消息请求QPS小于所述预设速率,还包括:第二确定单元,用于根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第二编号;遍历单元,用于从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数;第三确定单元,用于若遍历完所述队列切片中已存消息,且通过遍历所记录的消息总数量小于统计阈值,则根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第三编号;第二纠偏单元,用于若所述第二编号等于所述第本文档来自技高网...
一种消息计数的纠偏方法和装置

【技术保护点】
一种消息计数的纠偏方法,其特征在于,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述方法包括:根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。

【技术特征摘要】
1.一种消息计数的纠偏方法,其特征在于,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述方法包括:根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。2.根据权利要求1所述的方法,其特征在于,所述完成计数,包括:当编号为所述第一计数阈值的消息从所述消息切片中取出时,确定完成计数。3.根据权利要求1所述的方法,其特征在于,所述根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中还包括:若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值的步骤,所述第二计数阈值大于所述第一计数阈值。4.根据权利要求1所述的方法,其特征在于,所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,包括:根据所述队列切片中已分配编号的数值范围确定出符合预设条件的第一编号;根据所述第一编号和预设数值确定出所述第一计数阈值。5.根据权利要求1所述的方法,其特征在于,在所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值之前,还包括:获取针对所述队列切片的消息请求每秒查询率QPS,所述消息请求包括用于向所述队列切片存入或取出消息的请求;若所述消息请求QPS大于预设速率,执行所述根据所述队列切片中已存消息的编号的数值范围确定出第一计数阈值的步骤。6.根据权利要求5所述的方法,其特征在于,若所述消息请求QPS小于所述预设速率,还包括:根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第二编号;从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数;若遍历完所述队列切片中已存消息,且通过遍历所记录的消息总数量小于统计阈值,则根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第三编号;若所述第二编号等于所述第三编号,将所述消息总数量作为所述队列切片纠偏后的消息计数。7.根据权利要求6所述的方法,其特征在于,所述从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数,还包括:若遍历完所述队列切片中已存消息之前,记录遍历到的消息数已大于所述统计阈值,则停止遍历已存消息;重新执行所述获取针对所述队列切片的消息请求QPS的步骤。8.根据权利要求5所述的方法,其特征在于,所述根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中还包括:若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述获取针对所述队列切片的消息请求QPS的步骤,所述第二计数阈值大于所述第一计数阈值。9.根据权利要求1至8任一项所述的方法,其特征在于,还包括:向主服务器上传所述队列切片纠偏后的消息计数,以便所述主服务器用于统计所述消息队列的消息数量。10.一种消息计数的纠偏装置,其特征在于,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述装置包括:第一确定单元,用于根据所述队列切片中已分配编号的数值范围...

【专利技术属性】
技术研发人员:曾潘陈舟锋陈慧
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1