一种监控文件发送积压的方法和装置制造方法
【专利摘要】本发明公开了一种监控文件发送积压的方法和装置。所述方法应用于分布式消息系统且包括:获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时刻、和当前时刻的待发送文件大小;根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率;根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值;以及根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。上述方法和装置可以根据文件平均增长速率或文件增长速率确定积压阈值,有效地监测文件积压并显著地提高文件发送效率。
【专利说明】一种监控文件发送积压的方法和装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种监控文件发送积压的方法和装置。
【背景技术】
[0002]分布式消息系统是采用分布式处理进行消息发布和订阅的系统,典型的分布式消息系统包括 kafka,RabbitMQ, ActiveMQ, QBus 等等。
[0003]Qbus是一种以kafka为原型的分布式消息系统,其主要由发布方(Producer)、订阅方(Consumer)、存储方(Broker)、协调方(Zookeeper)、代理方(Agent)等单元组成。其中Agent的主要作用是将日志文件实时推送到存储方。
[0004]QBus系统目前的积压监控过程如下:(I)用户根据业务量设置统一的积压报警阈值;(2)多个被监测的文件中积压有达到该阈值的即报警。在上述积压监控操作中,积压阈值是预设的常量,无法根据具体的业务情况进行调整,如果阈值设置过低,会导致频繁报警;而设置过高又会导致无法监测到发送速率小的业务数据积压。
【发明内容】
[0005]鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的一种监控文件发送积压的方法和装置。
[0006]依据本发明的第一方面,提供了一种监控文件发送积压的方法,应用于分布式消息系统,所述方法包括:获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时亥|J、和当前时刻的待发送文件大小;根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率;根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值;以及根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
[0007]可选地,在根据本发明的实施例的监控文件发送积压的方法中,所述根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔确定当前时刻的文件平均增长速率的步骤包括:根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率;根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率;以及根据所述第二时刻的文件增长速率和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0008]可选地,在根据本发明的实施例的监控文件发送积压的方法中,第二时刻的文件增长速率=(第二时刻的待发送文件大小-第一时刻的待发送文件大小)+第二时刻与第一时刻之间的间隔;当前时刻的文件增长速率=(当前时刻的待发送文件大小-第二时刻的待发送文件大小)+当前时刻与第二时刻之间的间隔。
[0009]可选地,在根据本发明的实施例的监控文件发送积压的方法中,当前时刻的文件平均增长速率=[(第二时刻的文件增长速率X第二时刻与第一时刻之间的间隔)+ (当前时刻的文件增长速率X当前时刻与第二时刻之间的间隔)]+(第二时刻与第一时刻之间的间隔+当前时刻与第二时刻之间的间隔)。
[0010]可选地,在根据本发明的实施例的监控文件发送积压的方法中,当前时刻的积压阈值=当前时刻的文件平均增长速率X积压系数,其中所述积压系数根据所述当前时刻的文件平均增长速率确定。
[0011]可选地,在根据本发明的实施例的监控文件发送积压的方法中,在所述根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量判断当前时刻是否存在文件发送积压的步骤中,在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,判断当前时刻存在文件发送积压。
[0012]依据本发明的第二方面,提供了一种监控文件发送积压的装置,应用于分布式消息系统,所述装置包括:第一确定模块,用于获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时刻、和当前时刻的待发送文件大小;第二确定模块,用于根据所述第一时亥|J、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率;第三确定模块,用于根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值;以及判断模块,用于根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
[0013]可选地,在根据本发明的实施例的监控文件发送积压的装置中,其中第二确定模块用于:根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率;根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率;以及根据所述第二时刻和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0014]可选地,在根据本发明的实施例的监控文件发送积压的装置中,第二时刻的文件增长速率=(第二时刻的待发送文件大小-第一时刻的待发送文件大小)+第二时刻与第一时刻之间的间隔;当前时刻的文件增长速率=(当前时刻的待发送文件大小-第二时刻的待发送文件大小)+当前时刻与第二时刻之间的间隔。
[0015]可选地,在根据本发明的实施例的监控文件发送积压的装置中,当前时刻的文件平均增长速率=[(第二时刻的文件增长速率X第二时刻与第一时刻之间的间隔)+ (当前时刻的文件增长速率X当前时刻与第二时刻之间的间隔)]+(第二时刻与第一时刻之间的间隔+当前时刻与第二时刻之间的间隔)。
[0016]可选地,在根据本发明的实施例的监控文件发送积压的装置中,当前时刻的积压阈值=当前时刻的文件平均增长速率X积压系数,其中所述第三确定模块根据所述当前时刻的文件平均增长速率确定所述积压系数。
[0017]可选地,在根据本发明的实施例的监控文件发送积压的装置中,在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,所述判断模块判断当前时刻存在文件发送积压。
[0018]依据本发明的第三方面,提供了一种监控文件发送积压的方法,应用于分布式消息系统,所述方法包括:获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小;根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率;根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值;以及根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
[0019]依据本发明的第四方面,提供了一种监控文件发送积压的装置,应用于分布式消息系统,所述装置包括:第一确定模块,用于获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小;第二确定模块,用于根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率;第三确定模块,用于根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值;以及判断模块,用于根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
[0020]本发明提供了上述监控文件发送积压的方法和装置。根据本发明的实施例,可以根据当前时刻的文件平均增长速率或文件增长速率来确定当前时刻的积压阈值,并且通过监控当前时刻的未发送文件量,能够对具有不同发送速率的文件进行监控,以对不同的文件设置不同的积压阈值,能够根据本地文件大小及增长速率自动调整报警的积压阈值,并且在业务数据发送速率变化时进行实现积压阈值的动态调整,避免了频繁地发出不必要的报警,又能有效地监测文件积压情况,显著地提高了文件发送的效率。
[0021]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】
【附图说明】
[0022]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0023]图1是根据本发明的实施例的监控文件发送积压的方法的流程示意图;
[0024]图2是根据本发明的实施例的监控文件发送积压的装置以及服务器的结构示意图;
[0025]图3是根据本发明的另一实施例的监控文件发送积压的方法的流程示意图;以及
[0026]图4是根据本发明的另一实施例的监控文件发送积压的装置以及服务器的结构示意图。
【具体实施方式】
[0027]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0028]根据本发明的第一方面,提供了一种监控文件发送积压的方法100,该方法100应用于分布式消息系统。
[0029]在本发明的实施例中,分布式消息系统可以是采用分布式处理进行消息发布和订阅的系统,例如包括kafka,RabbitMQ, ActiveMQ, QBus等等。在下文中,将以QBus系统为例,对于本发明的原理进行详细地描述,以帮助读者更好地理解本发明的原理。但本领域技术人员应当理解,本发明的范围并不限于QBus系统,而是可以适用于任何分布式消息系统。
[0030]QBus 系统主要由发布方(Producer)JP^J* (Consumer)、存储方(Broker)、协调方(Zookeeper)、代理方(Agent)等单元组成。其中代理方的主要作用是将日志文件实时推送到存储方,因此代理方的文件挤压监控至关重要。下面将主要以代理方的积压监控为例来例示本发明的原理,同样,本发明的范围不限于此,而是可以应用于分布式消息系统(例如,QBus系统)的各个单元。
[0031]图1示出了根据本发明的实施例的监控文件发送积压的方法100的流程示意图。
[0032]如图1所示,监控文件发送积压的方法100始于步骤SllO:获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时刻、和当前时刻的待发送文件大小。
[0033]根据本发明的实施例,可选地,可以获取所有代理方进程对应的数据群集(cluster)和数据文件(datafile),并根据数据文件,从本地gdbm文件中获取发送情况日志。可替换地,也可以从协调方(Zookeeper)上获取文件发送情况日志。
[0034]可选地,根据所述日志,确定第一时刻h、第二时刻t2、和当前时刻h的待发送文件大小,分别为filesizejp filesize_t2、和f ilesizej—可选地,第一时刻1^早于第二时刻t2,且第二时刻t2早于当前时刻10?
[0035]再次参考图1,步骤SllO之后,进行步骤S120:根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0036]可选地,第二时刻t2与第一时刻t i之间的间隔:
[0037]interval—12= 12~t1
[0038]当前时刻h与第二时刻t 2之间的间隔:
[0039]interval_t0= 10-t2
[0040]根据本发明的示例性实施例,步骤S120可以包括步骤S121、S122、S123。其中,步骤S121:根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率;步骤S122:根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率;步骤S123:根据所述第二时刻的文件增长速率和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0041]根据本发明的示例性实施例,可选地,在步骤S121中,第二时刻的文件增长速率=(第二时刻的待发送文件大小-第一时刻的待发送文件大小)+第二时刻与第一时刻之间的间隔;在步骤S122中,当前时刻的文件增长速率=(当前时刻的待发送文件大小-第二时刻的待发送文件大小)+当前时刻与第二时刻之间的间隔。
[0042]如上所述,所述第一时刻和第二时刻的待发送文件大小分别为Hlesizej1和f ilesize_t2,第二时刻与第一时刻之间的间隔为interval_t2 = t ^t1,则第二时刻的文件增长速率为:
[0043]rate_t2= (filesize_t 2-fIlesize^1) interval_t2
[0044]如上所述,当前时刻和第二时刻的待发送文件大小分别为f ilesize_tQ和filesize_t2,当前时刻与第二时刻之间的间隔为interval!^= t (Τ?2,则当前时刻的文件增长速率为:
[0045]rate_t0= (filesize_t 0_filesize_t2) + interval_t0
[0046]根据本发明的示例性实施例,可选地,在步骤S123中,当前时刻的文件平均增长速率=[(第二时刻的文件增长速率X第二时刻与第一时刻之间的间隔)+ (当前时刻的文件增长速率X当前时刻与第二时刻之间的间隔)]+(第二时刻与第一时刻之间的间隔+当前时刻与第二时刻之间的间隔)。如上所述,第二时刻、当前时刻的文件增长速率分别为rate_t2、rate_t0,第二时刻与第一时刻之间的间隔、当前时刻与第二时刻之间的间隔分别为interval_t2、interval!^,则当前时刻的文件平均增长速率为:
[0047]rate_avg_t0= [ (rat e_t 2 X intervaI_t2) + (rat e_t0 X int erva 1_t0) ] -T- (interval_t2+interval_t0)。
[0048]如图1所示,步骤S120之后,进行步骤S130:根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值。
[0049]根据本发明的示例性实施例,当前时刻的积压阈值=当前时刻的文件平均增长速率X积压系数,其中所述积压系数根据所述当前时刻的文件平均增长速率确定。可选地,积压系数StocIfactorjci可以是根据当前时刻的文件平均增长速率所确定的允许的积压时间。如上所述,当前时刻的文件平均增长速率为rat^avgjy则当前时刻的积压阈值为:
[0050]limit_t0= rate_avg_t 0X stock_factor_t0
[0051]再次参考图1,步骤S130之后,进行步骤S140:根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。可选地,可以在判断当前时刻存在文件发送挤压时发出文件积压报警(例如,向服务器发出)。可选地,当前时刻的未发送文件量:
[0052]unsend_byte_t0= filesize_t 0 - offset_t0,
[0053]其中offset是当前时刻已发送文件量。
[0054]根据本发明的示例性实施例,在步骤S140中,在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,判断当前时刻存在文件发送积压。如上所述,当unsend_byte_t(!大于limit_t亦情况下,判断当前时刻存在文件发送积压。
[0055]如上所述,积压阈值与积压系数成正比,而积压系数是根据所述当前时刻的文件平均增长速率所确定的,从而实现了阈值的动态调整。可选地,方法100中,可以预先选择固定的积压阈值,来判断是否存在文件发送积压。可选地,方法100也可以使用固定积压阈值与动态积压阈值相结合的方式,来判断是否存在文件发送积压;例如,在当前时刻的未发送文件量大于固定积压阈值和动态积压阈值两者的情况下,判断存在文件发送积压;如果在当前时刻的未发送文件量仅大于固定积压阈值和动态积压阈值之一的情况下,则判断不存在文件发送积压。
[0056]根据本发明的第二方面,与上述方法100相对应,提供了一种监控文件发送积压的装置200,应用于分布式消息系统,包括第一确定模块210、第二确定模块220、第三确定模块230和判断模块240。
[0057]图2示出了根据本发明的实施例的监控文件发送积压的装置200和服务器300的结构示意图。
[0058]首先,第一确定模块200可以获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时刻、和当前时刻的待发送文件大小。
[0059]根据本发明的实施例,可选地,所述第一确定模块200可以获取所有代理方进程对应的数据群集(cluster)和数据文件(datafile),并根据数据文件,从本地gdbm文件中获取发送情况日志。可替换地,所述第一确定模块200也可以从协调方(Zook^per)上获取文件发送情况日志。
[0060]可选地,所述第一确定模块200可以根据所述日志,确定第一时刻tl、第二时刻t2、和当前时刻tQ的待发送文件大小,分别为filesize_t ^ filesize_t2、和filesize_tQ。可选地,第一时刻h早于第二时刻12,且第二时刻t2早于当前时刻t 00
[0061]随后,所述第二确定模块220可以根据所述第一时亥IJ、第二时亥IJ、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0062]可选地,第二时刻t2与第一时刻t i之间的间隔:
[0063]interval—12= 12~t1
[0064]当前时刻tQ与第二时刻t 2之间的间隔:
[0065]interval_t0= 10_t2
[0066]根据本发明的示例性实施例,所述第二确定模块220可以根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率,并根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率,之后根据所述第二时刻的文件增长速率和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0067]根据本发明的示例性实施例,可选地,第二时刻的文件增长速率=(第二时刻的待发送文件大小-第一时刻的待发送文件大小)+第二时刻与第一时刻之间的间隔;当前时刻的文件增长速率=(当前时刻的待发送文件大小-第二时刻的待发送文件大小当前时刻与第二时刻之间的间隔。
[0068]如上所述,所述第一时刻和第二时刻的待发送文件大小分别为Hlesizej1和f ilesize_t2,第二时刻与第一时刻之间的间隔为interval_t2 = t ^t1,则第二时刻的文件增长速率为:
[0069]rate_t2= (filesize_t 2-fIlesize^1) interval_t2
[0070]如上所述,当前时刻和第二时刻的待发送文件大小分别为f ilesize_tQ和filesize_t2,当前时刻与第二时刻之间的间隔为interval!^= t (Τ?2,则当前时刻的文件增长速率为:
[0071]rate_t0= (filesize_t 0_filesize_t2) + interval_t0
[0072]根据本发明的示例性实施例,可选地,当前时刻的文件平均增长速率=[(第二时刻的文件增长速率X第二时刻与第一时刻之间的间隔)+(当前时刻的文件增长速率X当前时刻与第二时刻之间的间隔)]+ (第二时刻与第一时刻之间的间隔+当前时刻与第二时刻之间的间隔)。如上所述,第二时刻、当前时刻的文件增长速率分别为rate_t2、rate_t(i,第二时刻与第一时刻之间的间隔、当前时刻与第二时刻之间的间隔分别为i n t er va l_t2、Iintervaltc!,则当前时刻的文件平均增长速率为:
[0073]rate_avg_t0= [ (r at e_t 2 X i n t er va I _t 2) + (r a t e_t0 X i n t er va 1_t0) ] -T- (interval_t2+interval_t0)。
[0074]接下来,所述第三确定模块230可以根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值。
[0075]根据本发明的示例性实施例,当前时刻的积压阈值=当前时刻的文件平均增长速率X积压系数,其中所述积压系数根据所述当前时刻的文件平均增长速率确定。可选地,积压系数StocIfactorjci可以是根据当前时刻的文件平均增长速率所确定的允许的积压时间。如上所述,当前时刻的文件平均增长速率为rat^avgjy则当前时刻的积压阈值为:
[0076]limit_t0= rate_avg_t 0X stock_factor_t0
[0077]之后,所述判断模块240可以根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。可选地,所述判断模块240可以在判断当前时刻存在文件发送挤压时发出文件积压报警(例如,向服务器300发出)。可选地,当前时刻的未发送文件量:
[0078]unsend_byte_t0= filesize_t 0 - offset_t0,
[0079]其中offset是当前时刻已发送文件量。
[0080]根据本发明的示例性实施例,在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,所述判断模块240可以判断当前时刻存在文件发送积压。如上所述,当UnsendjDytejc!大于(!的情况下,所述判断模块240判断当前时刻t C1存在文件发送积压。
[0081]如上所述,积压阈值与积压系数成正比,而积压系数是根据所述当前时刻的文件平均增长速率所确定的,从而实现了阈值的动态调整。可选地,所述判断模块240可以预先选择固定的积压阈值,来判断是否存在文件发送积压。可选地,所述判断模块240也可以使用固定积压阈值与动态积压阈值相结合的方式,来判断是否存在文件发送积压;例如,在当前时刻的未发送文件量大于固定积压阈值和动态积压阈值两者的情况下,所述判断模块240可以判断存在文件发送积压;如果在当前时刻的未发送文件量仅大于固定积压阈值和动态积压阈值之一的情况下,则所述判断模块240可以判断不存在文件发送积压。
[0082]根据本发明的第三方面,还提供了一种监控文件发送积压的方法400,应用于分布式消息系统。
[0083]图3示出了根据本发明的该实施例的监控文件发送积压的方法400的流程示意图。
[0084]如图3所示,监控文件发送积压的方法400始于步骤S410:获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小。
[0085]根据本发明的实施例,可选地,可以获取所有代理方进程对应的数据群集(cluster)和数据文件(datafile),并根据数据文件,从本地gdbm文件中获取发送情况日志。可替换地,也可以从协调方(Zookeeper)上获取文件发送情况日志。
[0086]可选地,根据所述日志,确定第一时刻h和当前时刻t ^的待发送文件大小,分别为Hlesizej1和f ilesize_t ^可选地,第一时刻h早于当前时刻tQ。
[0087]再次参考图3,步骤S410之后,进行步骤S420:根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率。
[0088]可选地,当前时刻h与第一时刻t i之间的间隔:
[0089]interval_t0= t ^t1
[0090]根据本发明的示例性实施例,可选地,当前时刻的文件增长速率=(当前时刻的待发送文件大小-第一时刻的待发送文件大小)+当前时刻与第一时刻之间的间隔。
[0091 ] 如上所述,当前时刻和第一时刻的待发送文件大小分别为f i Iesizejc!和filesizejp当前时刻与第一时刻之间的间隔为interval!^,则当前时刻的文件增长速率为:
[0092]rate_t0= (filesize_t 0-fIlesize^1) interval_t0
[0093]如图3所示,步骤S420之后,进行步骤S430:根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值。
[0094]根据本发明的示例性实施例,当前时刻的积压阈值=当前时刻的文件增长速率X积压系数,其中所述积压系数根据所述当前时刻的文件增长速率确定。可选地,积压系数Stocl^factorjc!可以是根据当前时刻的文件增长速率所确定的允许的积压时间。如上所述,当前时刻的文件增长速率为Tatejci,则当前时刻的积压阈值为:
[0095]limit—10= rate—10X stock—factor—10
[0096]再次参考图3,步骤S430之后,进行步骤S440:根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。可选地,可以在判断当前时刻存在文件发送挤压时发出文件积压报警(例如,向服务器发出)。可选地,当前时刻的未发送文件量:
[0097]unsend_byte_t0= filesize_t 0 - offset_t0,
[0098]其中offset是当前时刻已发送文件量。
[0099]根据本发明的示例性实施例,可选地,在步骤S440中,在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,判断当前时刻存在文件发送积压。如上所述,当UnsendjDytejc!大于limit_t ^的情况下,判断当前时刻存在文件发送积压。
[0100]如上所述,积压阈值与积压系数成正比,而积压系数是根据所述当前时刻的文件增长速率所确定的,从而实现了阈值的动态调整。可选地,方法400中,可以预先选择固定的积压阈值,来判断是否存在文件发送积压。可选地,方法400也可以使用固定积压阈值与动态积压阈值相结合的方式,来判断是否存在文件发送积压;例如,在当前时刻的未发送文件量大于固定积压阈值和动态积压阈值两者的情况下判断存在文件发送积压;如果在当前时刻的未发送文件量仅大于固定积压阈值和动态积压阈值之一的情况下,则判断不存在文件发送积压。
[0101]上述方法100的部分步骤和实施例同样适用于方法400,在此不再赘述。
[0102]根据本发明的第四方面,与上述方法400相对应,提供了一种监控文件发送积压的装置500,应用于分布式消息系统,包括第一确定模块510、第二确定模块520、第三确定模块530和判断模块540。
[0103]图4示出了根据本发明的该实施例的监控文件发送积压的装置500以及服务器600的结构示意图。
[0104]首先,所述第一确定模块510可以获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小。
[0105]根据本发明的实施例,可选地,所述第一确定模块510可以获取所有代理方进程对应的数据群集(cluster)和数据文件(datafile),并根据数据文件,从本地gdbm文件中获取发送情况日志。可替换地,所述第一确定模块510也可以从协调方(Zook^per)上获取文件发送情况日志。
[0106]可选地,根据所述日志,所述第一确定模块510可以确定第一时刻&和当前时刻tQ的待发送文件大小,分别为Hlesizej1和f ilesize_t ^可选地,第一时刻1^早于当前时刻tQ。
[0107]随后,所述第二确定模块520可以根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率。
[0108]可选地,当前时刻t(l与第一时刻t i之间的间隔:
[0109]interval_tQ= t o-ti
[0110]根据本发明的示例性实施例,可选地,当前时刻的文件增长速率=(当前时刻的待发送文件大小-第一时刻的待发送文件大小)+当前时刻与第一时刻之间的间隔。
[0111]如上所述,当前时刻和第一时刻的待发送文件大小分别为f ilesize_tQ和filesizejp当前时刻与第一时刻之间的间隔为interval!^,则当前时刻的文件增长速率为:
[0112]rate_t0= (filesize_t 0-fIlesize^1) interval_t0
[0113]接下来,所述第三确定模块530可以根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值。
[0114]根据本发明的示例性实施例,当前时刻的积压阈值=当前时刻的文件增长速率X积压系数,其中所述积压系数根据所述当前时刻的文件增长速率确定。可选地,积压系数Stocl^factorjc!可以是根据当前时刻的文件增长速率所确定的允许的积压时间。如上所述,当前时刻的文件增长速率为Tatejci,则当前时刻的积压阈值为:
[0115]limit_t0= rate_t 0X stock_factor_t0
[0116]之后,所述判断模块540可以根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。可选地,所述判断模块540可以在判断当前时刻存在文件发送挤压时发出文件积压报警(例如,向服务器600发出)。可选地,当前时刻的未发送文件量:
[0117]unsend_byte_t0= filesize_t 0 - offset_t0,
[0118]其中offset是当前时刻已发送文件量。
[0119]根据本发明的示例性实施例,可选地,在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,所述判断模块540判断当前时刻存在文件发送积压。如上所述,当UnsendjDytejc!大于limit_t (!的情况下,所述判断模块540判断当前时刻t (!存在文件发送积压。
[0120]如上所述,积压阈值与积压系数成正比,而积压系数是根据所述当前时刻的文件增长速率所确定的,从而实现了阈值的动态调整。可选地,所述判断模块540可以预先选择固定的积压阈值,来判断是否存在文件发送积压。可选地,所述判断模块540也可以使用固定积压阈值与动态积压阈值相结合的方式,来判断是否存在文件发送积压;例如,在当前时刻的未发送文件量大于固定积压阈值和动态积压阈值两者的情况下,所述判断模块540判断存在文件发送积压;如果在当前时刻的未发送文件量仅大于固定积压阈值和动态积压阈值之一的情况下,所述判断模块540则判断不存在文件发送积压。
[0121]上述装置200的部分模块和实施例同样适用于装置500,在此不再赘述。
[0122]本发明提供了上述监控文件发送积压的方法和装置。根据本发明的实施例,可以根据当前时刻的文件平均增长速率或文件增长速率来确定当前时刻的积压阈值,并且通过监控当前时刻的未发送文件量,能够对具有不同发送速率的文件进行监控,以对不同的文件设置不同的积压阈值,能够根据本地文件大小及增长速率自动调整报警的积压阈值,并且在业务数据发送速率变化时进行实现积压阈值的动态调整,避免了频繁地发出不必要的报警,又能有效地监测文件积压情况,显著地提高了文件发送的效率。
[0123]在此提供的方法和装置不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0124]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0125]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0126]本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的若干模块组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
[0127]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0128]本发明的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0129]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”或“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0130]Al.一种监控文件发送积压的方法,应用于分布式消息系统,所述方法包括:
[0131]获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时刻、和当前时刻的待发送文件大小;
[0132]根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时亥IJ、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率;
[0133]根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值;以及
[0134]根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
[0135]A2.如权利要求Al所述的方法,其中所述根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔确定当前时刻的文件平均增长速率的步骤包括:
[0136]根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率;
[0137]根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率;以及
[0138]根据所述第二时刻的文件增长速率和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0139]A3.如权利要求A2所述的方法,其中:
[0140]第二时刻的文件增长速率=(第二时刻的待发送文件大小-第一时刻的待发送文件大小)+第二时刻与第一时刻之间的间隔;
[0141]当前时刻的文件增长速率=(当前时刻的待发送文件大小-第二时刻的待发送文件大小当前时刻与第二时刻之间的间隔。
[0142]A4.如权利要求A2所述的方法,其中当前时刻的文件平均增长速率=
[0143][(第二时刻的文件增长速率X第二时刻与第一时刻之间的间隔)+
[0144](当前时刻的文件增长速率X当前时刻与第二时刻之间的间隔)]+
[0145](第二时刻与第一时刻之间的间隔+当前时刻与第二时刻之间的间隔)。
[0146]A5.如权利要求Al至A4中的任一项所述的方法,其中当前时刻的积压阈值=当前时刻的文件平均增长速率X积压系数,其中所述积压系数根据所述当前时刻的文件平均增长速率确定。
[0147]A6.如权利要求Al至A4中的任一项所述的方法,其中在所述根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量判断当前时刻是否存在文件发送积压的步骤中,
[0148]在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,判断当前时刻存在文件发送积压。
[0149]B7.一种监控文件发送积压的装置,应用于分布式消息系统,所述装置包括:
[0150]第一确定模块,用于获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时刻、和当前时刻的待发送文件大小;
[0151]第二确定模块,用于根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时亥|J、第二时亥|J、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率;
[0152]第三确定模块,用于根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值;以及
[0153]判断模块,用于根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
[0154]B8.如权利要求B7所述的装置,其中第二确定模块用于:
[0155]根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率;
[0156]根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率;以及
[0157]根据所述第二时刻和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
[0158]B9.如权利要求B8所述的装置,其中:
[0159]第二时刻的文件增长速率=(第二时刻的待发送文件大小-第一时刻的待发送文件大小)+第二时刻与第一时刻之间的间隔;
[0160]当前时刻的文件增长速率=(当前时刻的待发送文件大小-第二时刻的待发送文件大小当前时刻与第二时刻之间的间隔。
[0161]B10.如权利要求B8所述的装置,其中当前时刻的文件平均增长速率=
[0162][(第二时刻的文件增长速率X第二时刻与第一时刻之间的间隔)+
[0163](当前时刻的文件增长速率X当前时刻与第二时刻之间的间隔)]+
[0164](第二时刻与第一时刻之间的间隔+当前时刻与第二时刻之间的间隔)。
[0165]Bll.如权利要求B7至BlO中的任一项所述的装置,其中当前时刻的积压阈值=当前时刻的文件平均增长速率X积压系数,其中所述第三确定模块根据所述当前时刻的文件平均增长速率确定所述积压系数。
[0166]B12.如权利要求B7至BlO中的任一项所述的装置,其中在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,所述判断模块判断当前时刻存在文件发送积压。
[0167]C13.一种监控文件发送积压的方法,应用于分布式消息系统,所述方法包括:
[0168]获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小;
[0169]根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率;
[0170]根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值;以及
[0171]根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
[0172]D14.一种监控文件发送积压的装置,应用于分布式消息系统,所述装置包括:
[0173]第一确定模块,用于获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小;
[0174]第二确定模块,用于根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率;
[0175]第三确定模块,用于根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值;以及
[0176]判断模块,用于根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
【权利要求】
1.一种监控文件发送积压的方法,应用于分布式消息系统,所述方法包括: 获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时刻、和当前时刻的待发送文件大小; 根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率; 根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值;以及根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
2.如权利要求1所述的方法,其中所述根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔确定当前时刻的文件平均增长速率的步骤包括: 根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率; 根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率;以及 根据所述第二时刻的文件增长速率和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
3.如权利要求2所述的方法,其中: 第二时刻的文件增长速率=(第二时刻的待发送文件大小-第一时刻的待发送文件大小)+第二时刻与第一时刻之间的间隔; 当前时刻的文件增长速率=(当前时刻的待发送文件大小-第二时刻的待发送文件大小当前时刻与第二时刻之间的间隔。
4.如权利要求2所述的方法,其中当前时刻的文件平均增长速率=[(第二时刻的文件增长速率X第二时刻与第一时刻之间的间隔)+ (当前时刻的文件增长速率X当前时刻与第二时刻之间的间隔)]+(第二时刻与第一时刻之间的间隔+当前时刻与第二时刻之间的间隔)。
5.如权利要求1至4中的任一项所述的方法,其中当前时刻的积压阈值=当前时刻的文件平均增长速率X积压系数,其中所述积压系数根据所述当前时刻的文件平均增长速率确定。
6.如权利要求1至4中的任一项所述的方法,其中在所述根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量判断当前时刻是否存在文件发送积压的步骤中, 在当前时刻的未发送文件量大于所述当前时刻的积压阈值的情况下,判断当前时刻存在文件发送积压。
7.—种监控文件发送积压的装置,应用于分布式消息系统,所述装置包括: 第一确定模块,用于获取文件发送情况日志,并根据所述日志,确定第一时刻、第二时亥IJ、和当前时刻的待发送文件大小;第二确定模块,用于根据所述第一时刻、第二时刻、和当前时刻的待发送文件大小、以及所述第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率;第三确定模块,用于根据所述当前时刻的文件平均增长速率,确定当前时刻的积压阈值;以及 判断模块,用于根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
8.如权利要求7所述的装置,其中第二确定模块用于: 根据所述第一时刻和第二时刻的待发送文件大小、以及第二时刻与第一时刻之间的间隔,确定第二时刻的文件增长速率; 根据所述第二时刻和当前时刻的待发送文件大小、以及当前时刻与第二时刻之间的间隔,确定当前时刻的文件增长速率;以及 根据所述第二时刻和当前时刻的文件增长速率、以及第一时刻、第二时刻、和当前时刻之间的间隔,确定当前时刻的文件平均增长速率。
9.一种监控文件发送积压的方法,应用于分布式消息系统,所述方法包括: 获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小; 根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率; 根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值;以及根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
10.一种监控文件发送积压的装置,应用于分布式消息系统,所述装置包括: 第一确定模块,用于获取文件发送情况日志,并根据所述日志,确定第一时刻和当前时刻的待发送文件大小; 第二确定模块,用于根据所述第一时刻和当前时刻的待发送文件大小、以及当前时刻与第一时刻之间的间隔,确定当前时刻的文件增长速率; 第三确定模块,用于根据所述当前时刻的文件增长速率,确定当前时刻的积压阈值;以及 判断模块,用于根据所确定的当前时刻的积压阈值以及当前时刻的未发送文件量,判断当前时刻是否存在文件发送积压。
【文档编号】H04L29/08GK104486134SQ201410850944
【公开日】2015年4月1日 申请日期:2014年12月30日 优先权日:2014年12月30日
【发明者】乔俊龙, 陈飞 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司