CN107517168B - 一种消息计数的纠偏方法和装置 - Google Patents

一种消息计数的纠偏方法和装置 Download PDF

Info

Publication number
CN107517168B
CN107517168B CN201610425539.0A CN201610425539A CN107517168B CN 107517168 B CN107517168 B CN 107517168B CN 201610425539 A CN201610425539 A CN 201610425539A CN 107517168 B CN107517168 B CN 107517168B
Authority
CN
China
Prior art keywords
message
counting
queue
messages
slice
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.)
Active
Application number
CN201610425539.0A
Other languages
English (en)
Other versions
CN107517168A (zh
Inventor
曾潘
陈舟锋
陈慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610425539.0A priority Critical patent/CN107517168B/zh
Publication of CN107517168A publication Critical patent/CN107517168A/zh
Application granted granted Critical
Publication of CN107517168B publication Critical patent/CN107517168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种消息计数的纠偏方法和装置
技术领域
本申请涉及数据处理领域,特别是涉及一种消息计数的纠偏方法和装置。
背景技术
消息(英文:Message)属于一种数据单位,在计算机之间的数据传输过程中,消息可以作为承载数据的载体。而消息队列可以视为消息传输过程中保存消息的容器,一个消息队列中一般排列有多个消息。
为了能够高并发的处理消息队列中的消息,传统的消息处理方式中,可以将一个消息队列划分为多个队列切片,再按照特定的算法将这个消息队列中的消息分发到这多个队列切片中。队列切片是用于存储消息的存储单元,设置在服务器等处理设备中,一个消息队列的不同队列切片可以设置在相同或分别设置在不同的处理设备中,由于每个队列切片可以独立提供消息写入和/或读出服务,故可以实现对一个消息队列中消息的并行处理。
为了能够有效的管理队列切片例如确定向队列切片中分发消息的数量等,需要队列切片能够准确统计存储在本地的消息数量。然而由于处理设备、存储磁盘的故障时有发生,尤其是在分布式大集群的应用场景下,处理设备、存储磁盘发生故障属于大概率事件。在处理设备、存储磁盘发生故障切换(英文:failover)或者故障导致重新加载等故障期间,由于队列切片所提供的消息存取服务的不确定性,很容易导致队列切片的消息计数出现偏差。而目前并没有有效的手段可以消除这些偏差,导致目前队列切片的消息计数的准确性不高,那么根据多个队列切片的消息计数统计得到的消息队列的消息计数也不会具备准确性,只能用于反映消息队列中消息数量的大致情况而不能反映真实情况,所以无法将消息计数用于逻辑判断中,难以发挥消息计数本身应有的实质作用。
发明内容
为了解决上述技术问题,本申请提供了一种消息计数的纠偏方法和装置,减少或去除了处理设备故障可能对消息计数准确性的影响,所述队列切片中消息计数的高准确性进一步提升了消息计数的适用范围。
本申请实施例公开了如下技术方案:
一种消息计数的纠偏方法,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述方法包括:
根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;
根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;
当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。
可选的,所述完成计数,包括:
当编号为所述第一计数阈值的消息从所述消息切片中取出时,确定完成计数。
可选的,所述根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中还包括:
若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值的步骤,所述第二计数阈值大于所述第一计数阈值。
可选的,所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,包括:
根据所述队列切片中已分配编号的数值范围确定出符合预设条件的第一编号;
根据所述第一编号和预设数值确定出所述第一计数阈值。
可选的,在所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值之前,还包括:
获取针对所述队列切片的消息请求QPS,所述消息请求包括用于向所述队列切片存入或取出消息的请求;
若所述消息请求QPS大于预设速率,执行所述根据所述队列切片中已存消息的编号的数值范围确定出第一计数阈值的步骤。
可选的,若所述消息请求QPS小于所述预设速率,还包括:
根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第二编号;
从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数;
若遍历完所述队列切片中已存消息,且通过遍历所记录的消息总数量小于统计阈值,则根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第三编号;
若所述第二编号等于所述第三编号,将所述消息总数量作为所述队列切片纠偏后的消息计数。
可选的,所述从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数,还包括:
若遍历完所述队列切片中已存消息之前,记录遍历到的消息数已大于所述统计阈值,则停止遍历已存消息;
重新执行所述获取针对所述队列切片的消息请求QPS的步骤。
可选的,所述根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中还包括:
若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述获取针对所述队列切片的消息请求QPS的步骤,所述第二计数阈值大于所述第一计数阈值。
可选的,还包括:
向主服务器上传所述队列切片纠偏后的消息计数,以便所述主服务器用于统计所述消息队列的消息数量。
一种消息计数的纠偏装置,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述装置包括:
第一确定单元,用于根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;
计数单元,用于根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;
第一纠偏单元,用于当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。
可选的,所述计算单元还用于当编号为所述第一计数阈值的消息从所述消息切片中取出时,确定完成计数。
可选的,所述计数单元还用于若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值的步骤,所述第二计数阈值大于所述第一计数阈值。
可选的,所述第一确定单元具体用于根据所述队列切片中已分配编号的数值范围确定出符合预设条件的第一编号;根据所述第一编号和预设数值确定出所述第一计数阈值。
可选的,在触发所述第一确定单元之前,还包括:
获取单元,用于获取针对所述队列切片的消息请求QPS,所述消息请求包括用于向所述队列切片存入或取出消息的请求;
判断单元,用于若所述消息请求QPS大于预设速率,触发所述确定单元。
可选的,若所述判断单元的判断结果为所述消息请求QPS小于所述预设速率,还包括:
第二确定单元,用于根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第二编号;
遍历单元,用于从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数;
第三确定单元,用于若遍历完所述队列切片中已存消息,且通过遍历所记录的消息总数量小于统计阈值,则根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第三编号;
第二纠偏单元,用于若所述第二编号等于所述第三编号,将所述消息总数量作为所述队列切片纠偏后的消息计数。
可选的,所述遍历单元还用于若遍历完所述队列切片中已存消息之前,记录遍历到的消息数已大于所述统计阈值,则停止遍历已存消息;重新触发所述获取单元。
可选的,所述计数单元还用于若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新触发所述获取单元,所述第二计数阈值大于所述第一计数阈值。
可选的,还包括:
上传单元,用于向主服务器上传所述队列切片纠偏后的消息计数,以便所述主服务器用于统计所述消息队列的消息数量。
一种消息计数的纠偏设备,应用于队列切片,所述队列切片用于保存消息队列中的消息,所述纠偏设备包括接收器、处理器和计数器:
所述接收器,用于接收消息队列中的消息,所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增;
所述处理器,用于根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;
所述计数器,用于根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;
所述处理器,还用于当所述计数器完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。
由上述技术方案可以看出,根据被队列切片接收的消息均会被分配编号,且编号的数值按照消息的接收顺序依次递增的特点,根据所述队列切片中已分配编号的数值范围确定出大于已分配编号最大值的第一计数阈值。根据所述第一计数阈值开始对所述队列切片中消息进行计数,通过判断成功存入的消息和成功取出的消息的编号与所述第一计数阈值之间关系增减计数值,由此计数结果能够准确统计出所述队列切片中实际保存的消息个数,并将计数结果作为纠正故障可能导致的计数偏差的依据,减少或去除了处理设备故障可能对消息计数准确性的影响,所述队列切片中消息计数的高准确性进一步提升了消息计数的适用范围。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种消息计数纠偏方法的方法流程图;
图2a为本申请实施例提供的一种将接收到的消息保存到所述队列切片中的过程示意图;
图2b为本申请实施例提供的一种针对图2a的消息计数示意图;
图3为本申请实施例提供的一种消息计数纠偏方法的方法流程图;
图4为本申请实施例提供的一种消息计数纠偏装置的装置结构图;
图5为本申请实施例提供的一种消息计数的纠偏设备的硬件结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着大数据、网络技术的发展,对数据处理效率要求很高,为此,需要能够高并发的处理消息队列中的消息,一般是将一个消息队列划分为多个队列切片,再按照特定的算法将这个消息队列中的消息分发到这多个队列切片中。一个消息队列的队列切片一般专用于保存这个消息队列的消息,且由于每个队列切片可以独立提供消息写入和/或读出服务,故可以实现对一个消息队列中消息的并行处理。
然而对于处理消息的设备来说,由于长时间工作下,尤其是在分布式大集群的场景下,软硬件故障属于大概率事件,故经常会因为故障或故障中所提供的消息存取服务的不确定性,导致对队列切片中保存消息数量的计数会出现偏差。例如,目前针对队列切片的传统消息计数方式是,当确定消息成功存入队列切片中,才会进行相应的计数增加,或者成功从队列切片中取出后,才会进行相应的计数减少。也就是从确定存入或取出到改变消息计数之间会有一定的时间差。若队列切片刚成功存入100个消息,还尚未相应改变消息计数的数值时,该队列切片突然故障重启,这样,会导致之前存入的那100个消息并未被计数,那么该队列切片的消息计数的数值将会比该队列切片实际保存的消息数量少100个,造成了不准确的消息计数。这种计数上的偏差并不能够快速准确的被消除,而且每次出现的偏差还会累积,导致处理设备在持续运行过程中,队列切片的消息计数中的偏差会越来越大,基本不存在准确性。
申请人发现,在一些处理方式中,可以通过将该队列切片中保存的所有消息全部遍历一遍,从而了解该队列切片实际存储的消息总数,实现纠正这个应故障导致的计数偏差。而将所存消息全部遍历一遍的处理方式会对队列切片所在处理设备带来很大的处理负担,难以经常使用,不能以此作为消息计数纠偏的主要手段。
由于目前队列切片的消息计数的准确性不高,那么根据多个队列切片的消息计数统计得到的消息队列的消息计数也不会具备准确性,只能用于反映消息队列中消息数量的大致情况而不能反映真实情况,所以无法将消息计数用于逻辑判断中,难以发挥消息计数本身应有的实质作用。
为此,本申请实施例提供了一种消息计数的纠偏方法和装置,根据被队列切片接收的消息均会被分配编号,且编号的数值按照消息的接收顺序依次递增的特点,根据所述队列切片中已分配编号的数值范围确定出大于已分配编号最大值的第一计数阈值。根据所述第一计数阈值开始对所述队列切片中消息进行计数,通过判断成功存入的消息和成功取出的消息的编号与所述第一计数阈值之间关系增减计数值,由此计数结果能够准确统计出所述队列切片中实际保存的消息个数,并将计数结果作为纠正故障可能导致的计数偏差的依据,减少或去除了处理设备故障可能对消息计数准确性的影响,所述队列切片中消息计数的高准确性进一步提升了消息计数的适用范围。
本申请实施例可以应用于队列切片中,如前文所述,所述队列切片可以理解为专门用于保存一个消息队列中消息的队列切片。所述队列切片所接收的消息(也就是所述消息队列的消息)具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增。这里所述的编号可以理解为一种用于标识消息的标识,只要编号内容可以实现递增性效果的即可。例如所述编号可以具体是字符串形式的ID或其他可能的编号形式、内容。所述编号可以由编号分发模块实施编号的分发,这个编号分发模块可以设置在所述队列切片中,也可以与所述队列切片同时设置在一台服务器中等,这个编号分发模块将确保向所述队列切片分发的消息获得的编号是依次递增的。一个存储设备中可以设置有至少一个队列切片,在设置有多个队列切片的情况下,这些队列切片可以属于同一个消息队列或者分属不同的消息队列。
在所述队列切片中的编号分配机制中,会为所述队列切片所接收的消息都分配一个相应的编号,且分配的编号将随着接收顺序依次变大,例如所述队列切片a时刻接收消息a,消息a会被分配一个对应的编号a,假设编号a的数值是100,过了一段时间的a+1时刻,所述队列切片又接收到消息b,消息b会被分配一个对应的编号b,若消息a和消息b为所述队列切片接收的两个相邻消息,a时刻到a+1时刻之间没有接收到其他消息,那么编号b的数值可以为101。
但是需要注意的是,所述队列切片接收一个消息和成功保存一个消息的概念是有区别的,由于所述队列切片的处理机制和处理能力,可能并不能达到将所有接收到的消息都成功保存到所述队列切片中(例如保存到持久化存储空间内)。有可能出现所述队列切片接收到上述消息a并分配了编号a后,并没能成功保存消息a或者将消息a丢弃了的情况。而且由于消息能否被独立切片成功保存难有规律可循,不同的应用环境、应用场景中成功保存的消息数量占接收消息的总比例差别很大,甚至在相同的应用场景中,不同时间段中成功保存的消息数量占接收消息的总比例也经常会有很大的变化幅度,故所述队列切片中消息分配的这种编号并不能直接用于对所述队列切片中已存消息计数的依据。但是在本申请实施例中,申请人发现可以利用这种为消息分配的编号按接收顺序递增的特点协助对消息计数进行纠偏。
接下来将具体描述为了纠正之前消息计数可能出现的偏差而实施的消息计数流程。下述计数流程可以在部署了所述队列切片的处理设备出现故障后启动,也可以在所述处理设备重启、开机时启动,也可以周期性启动,也可以在所述处理设备的参数满足一定条件时启动,也可以在指定时间启动或人为主动启动等。
从设置有所述队列切片的存储设备的角度,对本申请实施例提供的消息计数纠偏方式进行说明。
图1为本申请实施例提供的一种消息计数纠偏方法的方法流程图,所述方法包括:
S101:根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值。
举例说明,所述队列切片中已分配编号的数值范围可以从编号分发模块获取。所述数值范围可以理解为哪些数值的编号已经被分配给消息了,所述数值范围可以是封闭式的范围,例如编号a至编号b,也可以是半封闭式的范围,例如最新分配的编号是编号b。
由于本申请实施例的纠偏方式是通过一个计数过程的计数,以此实现对之前已经完成的消息计数的纠偏,故需要将所述第一计数阈值设置的大于已分配编号的最大值,以便可以尽快且准备完备的进行为纠偏而进行的消息计数过程。
为了合理设置所述第一计数阈值,可以通过一个已分配编号作为确定所述第一计数阈值的依据。
故可选的,可以根据所述队列切片中已分配编号的数值范围确定出符合预设条件的第一编号,再根据所述第一编号和预设数值(英文:interval)确定出所述第一计数阈值。
举例说明,由于所需确定的所述第一计数阈值需要大于已分配编号最大值,故所述预设条件可以要求所述第一编号尽量接近已分配编号最大值。故通过所述预设条件得到的所述第一编号可以为已分配编号的最大值(即最新分配的编号),也可以是最近几次分配的编号。而所述预设数值可以是一个经验值,以便可以合理设置出所述第一计数阈值,从而可以尽快且准备完备的进行为纠偏而进行的消息计数过程。在下述涉及到消息请求每秒查询率(英文:Query Per Second,缩写:QPS)的场景中,所述预设数值可以与消息请求QPS相关,例如可以设置为消息请求QPS中消息请求数值的5倍。例如,所述队列切片已分配编号最大值为100,消息请求QPS为10个请求每秒,那么所述预设数值可以为10×5=50,所述第一计数阈值可以为100+50=150。
S102:根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1。
举例说明,由于所述队列切片一直提供消息的存储/取出服务,会一直有消息被分发到所述队列切片,由所述队列切片接收并保存。那么为会接收的消息分配编号,编号的数值将持续增大,可以从S101确定的已分配编号最大值增大到超过所述第一计数阈值。根据所述第一计数阈值进行的消息计数可以采用内存打点计数的方式,计数过程所记录的是确定已存在所述队列切片中,且编号符合计数需求的消息个数。由于是对消息开始计数,故为了方便起见,计数初始值可以认为是0,当然也可以是其他初始值,这里不进行限定。
当发现一个编号大于所述第一计数阈值的消息被所述队列切片接收并成功存储时,计数值+1,相当于明确存进来一个编号大于所述第一计数阈值的消息。
由于所述队列切片中除了需要保存消息外,已存消息也会根据不同需求被从所述队列切片中取出,例如针对已经处理完毕的消息。虽然一般情况下,取出消息的操作是按照消息编号的大小依次取出的,但是也不排除有间隔取出消息的情况,例如第一个取出消息的编号为10,第二个取出的消息是顺序取出,其编号为11,第三个取出的消息为间隔取出,其编号为15,可见间隔取出时,跳过了编号12至14的三个消息。结合附图说明S102中计数的方式,图2a展示的是将接收到的消息保存到所述队列切片中的过程。为了方便图示,将所述队列切片展示为一列的形式,且成功保存到所述队列切片中的消息依次从右至左排布在所述队列切片中,也就是说,图2a中所述队列切片所保存的消息,靠右边的比靠左边的消息编码要小。图中圆形视为消息。图2a中A所指的虚线圆形为所述第一计数阈值所对应的消息,在图2a所示的场景下,所述第一计数阈值对应的消息尚未保存到所述消息队列中,故以虚线的形式表现在图中。确定出A的过程相当于S101所执行的根据所述队列切片中已分配编号的数值范围确定出第一计数阈值的过程。在图2a所示场景中,消息在不停的被存入所述队列切片中,所述队列切片中消息也在不停的被取出。随着存入取出的过程,所述队列切片中的消息状态可以参见图2b,图2b的展示方式与图2a一致,不再赘述。在图2b所展示场景中,所述第一计数阈值对应的消息也已经保存到所述队列切片中,所述队列切片中,例如图示编号为B的消息。在根据所述第一计数阈值对所述队列切片中消息进行计数的过程中,若所述第一计数阈值为150,当编号大于150的消息保存到所述队列切片中,计数值+1,例如当编号为B的消息保存到所述队列切片中将导致计数值+1。在存入消息的同时,所述队列切片中保存的消息也在被取出。一般情况下是按照消息编号的顺序,以编号从小到大的方式从所述队列切片中取出消息,但是由于可能的间隔取出的问题,故在取出消息的过程中,在取出编号为149的消息后,接下来取出消息的编号可能为153,而不是一般情况下的编号为150的消息。然而在计数过程中,编号153的消息属于编号大于所述第一计数阈值的消息,故在保存到所述队列切片时,已经使得计数+1了。为了实现纠偏计数的准确性,需要在编号153消息从所述队列切片中取出时,相应的将原本为编号153消息增加的计数减去,即确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值时,计数-1。
需要注意的是,在根据所述第一计数阈值对所述队列切片中消息进行计数的过程中,还可能出现取出消息的编号远大于所述第一计数阈值,且超出第二计数阈值的情况。这种情况一般是因为编号为第一计数阈值的消息未被成功保存到所述队列切片导致的,那么在计数过程中,由于编号为第一计数阈值的消息被未被保存到所述队列切片中,自然不会检测到有编号为第一计数阈值的消息从所述队列切片中被取出的情况。为了防止出现这种情况导致消息计数一直无法完成的问题,可选的,在所述根据所述第一计数阈值开始对所述队列切片中消息进行计数中,还包括:
若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行S101,所述第二计数阈值大于所述第一计数阈值。
这里所述第二计数阈值可以理解为一个经验值,主要是为了防止消息计数无法完成的情况发生。可选的,为了方便的设置出所述第二计数阈值的合理数值,所述第二计数阈值可以通过所述第一计数阈值与所述预设数值计算得到。例如在下述涉及到消息请求QPS的场景中,所述预设数值可以设置为消息请求QPS中消息请求数值的5倍。若所述队列切片已分配编号最大值为100,消息请求QPS为10个请求每秒,那么所述预设数值可以为10×5=50,所述第一计数阈值可以为100+50=150,所述第二计数阈值可以设置为所述第一计数阈值加上所述预设数值,即可以为150+50=200。
S103:当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。
举例说明,这里所述的计数结果可以理解为是完成计数的计数结果。完成计数时的计数结果可以准确反应所述队列切片在完成计数时所存消息的实际情况。所述计数结果中,除去计数初始值的数值即是所述队列切片中保存所有编号大于所述第一计数阈值的消息总数,或者可以理解为可以当前所述队列切片中已存消息的实际总数。从而这一准确的计数结果显然可以作为纠正之前可能出现的消息计数偏差的依据。
可选的,本申请实施例提供了一种是否判断完成计数的方式,在进行计数过程中,当编号为所述第一计数阈值的消息从所述消息切片中取出时,确定完成计数。完成计数时的计数值也就是所述计数结果。
以所述第一计数阈值为150为例,当编号150的消息被从所述队列切片中取出时,所统计的计数结果可以准确的反应所述队列切片中保存所有编号大于所述第一计数阈值的消息总数,或者可以理解为可以反映当前所述队列切片中已存消息的实际总数。在得到这一结论时,可以认为根据所述第一计数阈值的消息计数已经完成。
可选的,在确定出所述队列切片纠偏后的消息计数后,可以向主服务器上传所述队列切片纠偏后的消息计数,以便所述主服务器用于统计所述消息队列的消息数量。
由于主服务器统一管理所述消息队列的相关信息,故若所述消息队列所划分的多个队列切片均将纠偏后的消息计数发给所述主服务器,所述主服务器可以以此确定所述消息队列准确的消息总数,所述消息队列准确的消息总数可以作为其他逻辑判断的参考依据。
通过具体场景的举例进一步说明图1所对应实施例中的消息计数方式:
a)获取当前队列切片中已分配编号中编号值最大的编号,也就是所述第一编号(代号:MsgIDmax),由MsgIDmax加上预设数值(interval)得到第一计数阈值(代号:MsgIDmark),根据MsgIDmark开始以内存打点记录的方式进行消息计数,初始化打点计数值MsgCountmark值为0,打开计数纠偏模块的缓存监控开关。
b)新消息成功保存到所述队列切片中(对应的编号为MsgIDn),当MsgIDn大于MsgIDmark值时,则打点计数值MsgCountmark加1;
c)若已存消息从所述队列切片中取出(对应编号为MsgIDm),针对可能出现的三种情况进行处理,三种情况见下述i、ii和iii:
i.若第二计数阈值(MsgIDmark+interval)>MsgIDm>MsgIDmark,MsgCountmark减1。
ii.若MsgIDm=MsgIDmark,将所述队列切片的消息计数值设置为当前MsgCountmark的数值,完成消息计数,并可以将所述队列切片的消息计数值进行上报。
iii.若MsgIDm>MsgIDmark+interval,停止消息计数,并重新确定所述第一计数阈值(跳至步骤a)。
根据上述实施例可以看出,根据被队列切片接收的消息均会被分配编号,且编号的数值按照消息的接收顺序依次递增的特点,根据所述队列切片中已分配编号的数值范围确定出大于已分配编号最大值的第一计数阈值。根据所述第一计数阈值开始对所述队列切片中消息进行计数,通过判断成功存入的消息和成功取出的消息的编号与所述第一计数阈值之间关系增减计数值,由此计数结果能够准确统计出所述队列切片中实际保存的消息个数,并将计数结果作为纠正故障可能导致的计数偏差的依据,减少或去除了处理设备故障可能对消息计数准确性的影响,所述队列切片中消息计数的高准确性进一步提升了消息计数的适用范围。
接下来将以涉及消息请求QPS的场景,对本申请的消息计数进行相应的说明。
针对所述队列切片的消息请求QPS可以理解为每秒钟向所述队列切片分发消息的请求和取出消息的请求的总数。在本申请实施例中提供了至少两种用于纠偏的消息计数方式,可以根据消息请求QPS的高低来确定使用哪一种消息计数方式。在图1所对应实施例中的消息计数方式更适合在消息请求QPS较高的情况下使用,或者说更需要较高的消息请求QPS才能更好的实施图1所对应实施例中的消息计数方式。故可选的,在图1所对应实施例的基础上,执行S101之前,可以先判断所述队列切片的消息请求QPS的高低。
获取针对所述队列切片的消息请求QPS,所述消息请求包括用于向所述队列切片存入或取出消息的请求。
若所述消息请求QPS大于预设速率,执行S101。
举例说明,所述预设速率可以是一种经验数据,可以根据不同的应用场景设置不同的预设速率。不过为了方便设置,可选的,本申请实施例中提供了一种设置方式,以消息请求QPS的级别作为设置所述预设速率的依据。例如消息请求QPS的等级可以分为三级,分别为LOW、MEDIUM、HIGH三级。其中,若消息请求QPS的级别为LOW,所述队列切片接收到的消息请求量较低,所述队列切片可以每5秒上报一次消息计数;若消息请求QPS的级别为MEDIUM,所述队列切片接收到的消息请求量较高,所述队列切片可以每1秒上报一次消息计数;若消息请求QPS的级别为HIGH,所述队列切片接收到的消息请求量非常高,所述队列切片需要实时上报消息计数。所述预设速率的值可以设置为稍小于刚达到级别MEDIUM时的消息请求QPS的值,可以理解为,当消息请求QPS达到级别MEDIUM时,更适宜启用图1所对应实施例中的消息计数方式。
需要注意的是,在图1所对应实施例中,若所述根据所述第一计数阈值开始对所述队列切片中消息进行计数,那么在涉及消息请求QPS的场景中,其中还包括:
若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述获取针对所述队列切片的消息请求QPS的步骤,所述第二计数阈值大于所述第一计数阈值。
在判断所述消息请求QPS与所述预设速率之间大小关系时,若所述消息请求QPS大于预设速率,可以理解为实施图1所对应实施例中的消息计数方式。若所述消息请求QPS小于所述预设速率,则可选的,可以实施本申请实施例所提供的另一种消息计数方式,详见图3所示:
S201:根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第二编号。
S202:从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数。
举例说明,在所述消息请求QPS小于所述预设速率的情况下,可以理解为目前所述队列切片处于较为空闲的状态,所保存的消息数量也不会很大。这种情况下,可以直接遍历所述队列切片的已存消息,也不会对所述队列切片的正常工作带来负担。
S203:若遍历完所述队列切片中已存消息,且通过遍历所记录的消息总数量小于统计阈值,则根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第三编号。
S204:若所述第二编号等于所述第三编号,将所述消息总数量作为所述队列切片纠偏后的消息计数。
举例说明,实施图2所对应实施例中的消息计数方式需要所述队列切片中已存消息的数量不能太多,若数量过多,会导致遍历消息的时间过长,时间越长,在遍历过程中所述队列切片存入新消息的可能性就越大,这样即使遍历完成,由于遍历方式是以编号从大到小的顺序实施,若新存入消息,新消息的编号必然比所述第二编号大,那么在遍历过程中将无法记录新消息的个数。所以,需要设置一个统计阈值,以避免遍历的消息数量过多反而可能导致计数不准确的情况发生。
在执行S203时,若遍历完所述队列切片中已存消息之前,记录遍历到的消息数已大于所述统计阈值,则停止遍历已存消息。并重新执行所述获取针对所述队列切片的消息请求QPS的步骤。
也就是说,所述队列切片中所有已存消息的总数已经超出了所述统计阈值,可见所述队列切片中的已存消息数量过多,不再适用使用图2所对应实施例中的消息计数方式。
需要注意的是,即使遍历过程中所述队列切片中已存消息总量满足所述统计阈值,也不能保证遍历过程中所述队列切片没有接收到消息并成功保存。故需要再遍历完成后,重新确定所述队列切片中已存消息中编号值最大的第三编号。若所述第二编号能够等于所述第三编号,可以确定在遍历过程中所述队列切片没有接收到消息并成功保存,从而保证了遍历得到的所述消息总数量的准确性。
由上述实施例可以看出,本申请提供了至少两种不同的消息计数方式,并通过对所述队列切片的消息请求QPS的判断,从而可以灵活的针对纠偏所进行不同的消息计数方式,在所述队列切片的消息请求QPS较高时,可以使用如图1所对应实施例中的消息计数方式,在所述队列切片的消息请求QPS较低时,可以使用如图2所对应实施例中的消息计数方式,由此可以在不同消息请求QPS场景或者同一场景的不同消息请求QPS情况下有针对性的选择适用的消息计数方式,以实现高效率高准确性的消息计数纠偏。
图4为本申请实施例提供的一种消息计数的纠偏装置的装置结构图,应用于队列切片,所述队列切片用于保存消息队列中的消息;所述队列切片所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增,所述装置包括:
第一确定单元301,用于根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;
计数单元302,用于根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;
第一纠偏单元303,用于当完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。
可选的,所述计算单元还用于当编号为所述第一计数阈值的消息从所述消息切片中取出时,确定完成计数。
可选的,所述计数单元还用于若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新执行所述根据所述队列切片中已分配编号的数值范围确定出第一计数阈值的步骤,所述第二计数阈值大于所述第一计数阈值。
可选的,所述第一确定单元具体用于根据所述队列切片中已分配编号的数值范围确定出符合预设条件的第一编号;根据所述第一编号和预设数值确定出所述第一计数阈值。
可选的,在触发所述第一确定单元之前,还包括:
获取单元,用于获取针对所述队列切片的消息请求每秒查询率QPS,所述消息请求包括用于向所述队列切片存入或取出消息的请求;
判断单元,用于若所述消息请求QPS大于预设速率,触发所述确定单元。
可选的,若所述判断单元的判断结果为所述消息请求QPS小于所述预设速率,还包括:
第二确定单元,用于根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第二编号;
遍历单元,用于从所述第二编号对应的消息开始,以编号从大到小的顺序对所述队列切片中的已存消息进行遍历,并记录遍历到的消息数;
第三确定单元,用于若遍历完所述队列切片中已存消息,且通过遍历所记录的消息总数量小于统计阈值,则根据所述队列切片中已存消息的编号的数值范围,确定出编号值最大的第三编号;
第二纠偏单元,用于若所述第二编号等于所述第三编号,将所述消息总数量作为所述队列切片纠偏后的消息计数。
可选的,所述遍历单元还用于若遍历完所述队列切片中已存消息之前,记录遍历到的消息数已大于所述统计阈值,则停止遍历已存消息;重新触发所述获取单元。
可选的,所述计数单元还用于若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于第二计数阈值,则停止计数,并重新触发所述获取单元,所述第二计数阈值大于所述第一计数阈值。
可选的,还包括:
上传单元,用于向主服务器上传所述队列切片纠偏后的消息计数,以便所述主服务器用于统计所述消息队列的消息数量。
可见,根据被队列切片接收的消息均会被分配编号,且编号的数值按照消息的接收顺序依次递增的特点,根据所述队列切片中已分配编号的数值范围确定出大于已分配编号最大值的第一计数阈值。根据所述第一计数阈值开始对所述队列切片中消息进行计数,通过判断成功存入的消息和成功取出的消息的编号与所述第一计数阈值之间关系增减计数值,由此计数结果能够准确统计出所述队列切片中实际保存的消息个数,并将计数结果作为纠正故障可能导致的计数偏差的依据,减少或去除了处理设备故障可能对消息计数准确性的影响,所述队列切片中消息计数的高准确性进一步提升了消息计数的适用范围。
图5为本申请实施例提供的一种消息计数的纠偏设备的硬件结构图,应用于队列切片,所述队列切片用于保存消息队列中的消息,所述纠偏设备包括接收器501、处理器502和计数器503:
所述接收器501,用于接收消息队列中的消息,所接收的消息具有根据接收顺序被分配的编号,为消息分配编号的数值按照消息的接收顺序依次递增;
所述处理器502,用于根据所述队列切片中已分配编号的数值范围确定出第一计数阈值,所述第一计数阈值大于所述队列切片中已分配编号最大值;
所述计数器503,用于根据所述第一计数阈值开始对所述队列切片中消息进行计数,其中包括:若确定所述队列切片中成功存入一个消息,且这个消息的编号大于所述第一计数阈值,计数值加1;若确定从所述队列切片中成功取出一个消息,且这个消息的编号大于所述第一计数阈值,计数值减1;
所述处理器502,还用于当所述计数器503完成计数时,将计数结果作为所述队列切片纠偏后的消息计数。
图5所对应各部分特征的说明可以参见图1所对应实施例中各步骤的相关说明,这里不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (17)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610425539.0A CN107517168B (zh) 2016-06-15 2016-06-15 一种消息计数的纠偏方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610425539.0A CN107517168B (zh) 2016-06-15 2016-06-15 一种消息计数的纠偏方法和装置

Publications (2)

Publication Number Publication Date
CN107517168A CN107517168A (zh) 2017-12-26
CN107517168B true CN107517168B (zh) 2021-01-29

Family

ID=60720890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610425539.0A Active CN107517168B (zh) 2016-06-15 2016-06-15 一种消息计数的纠偏方法和装置

Country Status (1)

Country Link
CN (1) CN107517168B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53128910A (en) * 1977-04-15 1978-11-10 Nec Corp Measuring device of communication quantity
CN101557316A (zh) * 2009-05-14 2009-10-14 阿里巴巴集团控股有限公司 一种更新统计数据的方法和系统
CN102571277A (zh) * 2011-12-29 2012-07-11 中兴通讯股份有限公司 序号检测消息的发送方法及装置
CN102945220A (zh) * 2012-10-17 2013-02-27 无锡江南计算技术研究所 基于序号的多队列保序方法
CN103259668A (zh) * 2013-04-02 2013-08-21 中兴通讯股份有限公司 实现计数器计数控制的方法及网络芯片

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53128910A (en) * 1977-04-15 1978-11-10 Nec Corp Measuring device of communication quantity
CN101557316A (zh) * 2009-05-14 2009-10-14 阿里巴巴集团控股有限公司 一种更新统计数据的方法和系统
CN102571277A (zh) * 2011-12-29 2012-07-11 中兴通讯股份有限公司 序号检测消息的发送方法及装置
CN102945220A (zh) * 2012-10-17 2013-02-27 无锡江南计算技术研究所 基于序号的多队列保序方法
CN103259668A (zh) * 2013-04-02 2013-08-21 中兴通讯股份有限公司 实现计数器计数控制的方法及网络芯片

Also Published As

Publication number Publication date
CN107517168A (zh) 2017-12-26

Similar Documents

Publication Publication Date Title
CN106202280B (zh) 一种信息处理方法及服务器
CN110784355B (zh) 一种故障识别方法及装置
WO2016141735A1 (zh) 缓存数据的确定方法及装置
US9292336B1 (en) Systems and methods providing optimization data
US20170185454A1 (en) Method and Electronic Device for Determining Resource Consumption of Task
US20160379122A1 (en) Recommendation algorithm optimization method, device and system
CN107402870B (zh) 一种元数据服务器中日志段的处理方法及装置
WO2019140739A1 (zh) 客户回访的判断方法、电子装置及计算机可读存储介质
CN111611020A (zh) 一种应用程序的应用进程查杀方法及设备
CN102981944A (zh) 一种基于文件系统的日志存储方法
CN112559592A (zh) 实时数据处理方法、装置及设备
CN109284193B (zh) 一种基于多线程的分布式数据处理方法及服务器
CN107277624B (zh) 时长计算方法及其装置
CN112579327A (zh) 一种故障检测方法、装置及设备
CN115408149A (zh) 一种时序存储引擎内存设计及分配方法及装置
CN110688360A (zh) 分布式文件系统存储管理方法、装置、设备及存储介质
CN107517168B (zh) 一种消息计数的纠偏方法和装置
CN109753338B (zh) 虚拟gpu使用率的检测方法和装置
WO2020052358A1 (en) Method and system for game data processing, server and computer readable storage medium
CN115576872B (zh) 多级缓存的访问检测方法及装置
US20170083531A1 (en) Selecting an incremental backup approach
CN109977074B (zh) 一种基于hdfs的lob数据处理方法及装置
CN111913913A (zh) 访问请求的处理方法和装置
CN116909862A (zh) 异常日志的收集方法及装置、电子设备、存储介质
CN108664322A (zh) 数据处理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant