以想到,代理服务器还可以通过其他方式对读操作或写操作的次数进行统计。
[0035]其次,电子设备可以根据每次操作的时延判断哪些操作属于延时操作,从而获取上述操作中属于延时操作的次数。上述操作日志中可以记载有每个操作的时延,电子设备可以将时延大于预设时延阈值的操作认定为延时操作。时延可以用于表示处理一个读操作或写操作所需要的时间,其可以通过客户端发出请求的时间与客户端接收到对相应请求的应答的时间来计算,也可以通过其他可表示分布式缓存系统对客户端请求的响应速度的时间来表征。预设时延阈值是预先设定的时间,电子设备可以根据分布式缓存系统处理操作请求的时间是否超过预设时延来判定一项操作是否为延时操作。可选的,该预设时延阈值可以是代理服务器根据客户端(例如图1所示的终端设备101、102、103)事先发送的请求预先设置的。由于预设时延阈值是根据客户端的请求设置的,因此这种以客户端设置为标准判断延时操作,能够适应不同客户端的具体需求。电子设备可以将每次操作的时延记录在日志文件中,当电子设备需要判断哪些操作属于延时操作时,可以从日志文件中获取该操作的时延,将该时延与预设时延阈值比对,从而将时延大于预设时延阈值的操作判定为延时操作;也可以在通过日志文件记录每次操作的信息时,就将时延与预设时延阈值进行比较,将时延大于预设时延阈值的操作记录为延时操作,并将延时操作以某种标志记录在日志文件中,当电子设备需要记录延时操作的次数时,直接在日志文件中统计具有上述标志的操作即可获取延时操作的次数。
[0036]在本实施例的一些可选的实现方式中,上述时延是每次操作从接收请求到完成应答的时间。即,电子设备可以在接收到客户端的请求以及在向客户端发送对应该请求的处理结果时各记录一次时间,将两次时间的差值作为上述时延。
[0037]步骤202,根据延时操作的次数与操作的总次数计算延时操作比例。
[0038]在本实施例中,基于步骤201中得到的延时操作的次数和操作的总次数,上述电子设备(例如图1所示的代理服务器)可以将延时操作的次数与操作的总次数之间的比值作为延时操作比例。本领域技术可以想到,延时操作比例还可以通过其他方法对延时操作的次数与操作的总次数这两种数值进行计算以获得延时操作比例。在分布式缓存系统处理操作请求时,出现延时操作可能是难以避免的。当延时操作次数较多时,可以认为分布式缓存系统处理读写请求的能力已经难以满足当前所有的读写请求。在判断延时操作是否较多时,可以通过延时操作比例这一相对数据进行判断更为准确。
[0039]步骤203,比较延时操作比例与预设比例阈值。
[0040]在本实施例中,电子设备在通过步骤202获取到延时操作比例时,可以将延时操作比例与预设比例阈值进行比较。预设比例阈值是用于判断当前延时操作比例是否过高的标准,该预设比例阈值可以在电子设备中预先设置。可选的,该预设比例阈值可以是代理服务器根据客户端事先发送的请求预先设置的。由于预设比例阈值是根据客户端的请求设置的,因此延时操作的判断标准可以充分满足客户端的需求。
[0041]步骤204,根据比较结果确定是否对分布式缓存系统执行限流操作。
[0042]本实施例中,电子设备根据步骤203获取到延时操作比例与预设比例阈值的比较结果后,步骤204中电子设备可以根据该比较结果确定是否进行限流操作。S卩,电子设备在判断是否进行限流操作时,以该比较结果作为判断依据。其中,限流操作即为限制分布式缓存系统当前能处理读请求或写请求的数量。
[0043]在本实施例的一些可选的实现方式中,根据比较结果确定是否对分布式缓存系统执行限流操作可以通过如下方式进行操作:在延时操作比例大于预设比例阈值时,执行限流操作。当延时操作比例大于预设比例阈值时,意味着该比例已经超出预设的标准,表示整个分布式缓存系统的响应速度已经无法满足客户端读取数据的需求,当前流量出现异常增大。此时,电子设备可以执行限流操作,以防止延时操作次数的不断积累而造成雪崩效应。
[0044]本申请的上述实施例提供的方法在对延迟操作与总操作比例达到一定比例阈值时判断流量是否异常上涨而需要执行限流操作,由于延时操作以操作时延作为判断依据,而操作时延是更能反映分布式缓存系统响应速度的指标,从而使得执行限流操作的时机更为准确。
[0045]进一步参考图3,其示出了用于分布式缓存系统的流量控制方法的又一个实施例的流程300。该用于分布式缓存系统的流量控制方法的流程300,包括以下步骤:
[0046]步骤301,记录分布式缓存系统在单位时间内所完成的操作的总次数,并获取该操作中延时操作的次数。
[0047]在本实施例中,步骤301与步骤201基本一致,这里不再赘述。
[0048]步骤302,根据延时操作的次数与操作的总次数计算延时操作比例。
[0049]在本实施例中,步骤302与步骤202基本一致,这里不再赘述。
[0050]步骤303,比较延时操作比例与预设比例阈值。
[0051]在本实施例中,步骤303与步骤203基本一致,这里不再赘述。
[0052]步骤304,在延时操作比例大于预设比例阈值时,将分布式缓存系统的令牌数减少预设值。
[0053]在本实施例中,电子设备可以通过将分布式缓存系统的令牌数减少预设值以执行限流操作。
[0054]在本实施例中,电子设备可以通过令牌(token)对向分布式缓存系统发送的读请求或写请求进行访问控制。相应的,令牌的个数可以表征系统中可以容纳请求的个数。当接收到客户端发送的读请求或写请求时,电子设备可以首先检测令牌的个数,如果个数大于1,则电子设备接受该请求,分布式缓存系统即可以处理相应的请求,并在接受该请求的同时将令牌的个数减一;当令牌的个数小于1时,则拒绝该请求。当完成一个请求时,电子设备可以将令牌的个数加一并同时完成对客户端请求的应答。
[0055]通过以上方式,令牌的个数即可与分布式缓存系统当前还能容纳的请求数对应。在执行限流操作时,电子设备可以将令牌的个数减去预设数值,即可以减少分布式缓存系统当前能够容纳的请求数以达到限制流量的目的。可选的,上述预设值可以设置为1。即,每次在执行限流操作时可将令牌的个数减1。
[0056]从图3中可以看出,与图2对应的实施例相比,本实施例中的用于分布式缓存系统的流量控制方法的流程300进一步描述了执行限流操作的步骤。由此,本实施例描述的方案可以通过对令牌数的调整减小分布式系统可容纳的请求数,这种限流操作机制可以更有效地执行限流操作,从而进一步避免发生“雪崩效应”。
[0057]进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种用于分布式缓存系统的流量控制装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0058]如图4所示,本实施例所述的用于分布式缓存系统的流量控制装置400包括:记录单元401、计算单元402、比较单元403和限流单元404。其中,记录单元401配置用于记录分布式缓存系统在单位时间内所完成的操作的总次数,并获取该操作中延时操作的次数,其中,该操作是分布式缓存系统根据客户端请求所执行的读操作或写操作,延时操作是时延大于预设时延阈值的操作;解析单元402配置用于根据上述延时操作的次数与操作的总次数计算延时操作比例;比较单元403配置用于比较延时操作比例与预设比例阈值;而限流单元404配置用于根据比较结果确定是否对分布式缓存系统执行限流操作。
[0059]在本实施例中,上述流量控制装置400的记录单元401可以首先记录分布式缓存系统在单位时间内所完成的操作的总次数,并根据每次操作的时延判断哪些操作属于延时操作,从而获取上述操作中属于延时操作的次数。其中,单位时间可以根据需要进行设定。该操作是分布式缓存系统根据客户端请求所执行的读操作或写操作。记录单元401可以从代理服务器的操作日志中获取分布式系统在单位时间执行的所有读操作或写操作。记录单元401对操作日志中记录的操作进行次数统计,即可记录操作的总次数。
[0060]在本实施例中,基于记录单元401得到的延时操作的次数和操作的总次数,