用于分布式缓存系统的流量控制方法和装置的制造方法
【技术领域】
[0001]本申请涉及通信技术领域,具体涉及分布式缓存技术领域,尤其涉及用于分布式缓存系统的流量控制方法和装置。
【背景技术】
[0002]缓存(cache)具有能够提升指令和数据读取速度的特性,因此,在计算机系统从本地计算机系统向分布式系统的扩展过程中,缓存在分布式计算领域中得到了广泛的应用,这种应用在分布式计算中的缓存称为分布式缓存。
[0003]在分布式缓存存储服务中,为了实现故障时,对读写透明路由透明,会在缓存层前面设置一层代理(proxy)服务器。当流量异常上涨后,需要对流量进行限制,否则代理服务器和后端的缓存服务器将无法在预期时间内应答所有请求,随着请求的逐渐堆积还会出现雪崩效应。然而,还需要进一步提高分布式缓存系统中流量限制操作执行时间的准确性。
【发明内容】
[0004]本申请的目的在于提出一种改进的用于分布式缓存系统的流量控制方法和装置,来解决以上【背景技术】部分提到的技术问题。
[0005]第一方面,本申请提供了一种用于分布式缓存系统的流量控制方法,所述方法包括:记录分布式缓存系统在单位时间内所完成的操作的总次数,并获取所述操作中延时操作的次数,其中,所述操作是所述分布式缓存系统根据客户端请求所执行的读操作或写操作,所述延时操作是时延大于预设时延阈值的操作;根据所述延时操作的次数与所述操作的总次数计算延时操作比例;比较所述延时操作比例与预设比例阈值;根据比较结果确定是否对分布式缓存系统执行限流操作。
[0006]在一些实施例中,所述时延是每次操作从接收请求到完成应答的时间。
[0007]在一些实施例中,所述根据比较结果确定是否执行限流操作包括:当所述延时操作比例大于所述预设比例阈值时,执行限流操作。
[0008]在一些实施例中,所述执行限流操作包括:将所述分布式缓存系统的令牌数减少预设值,其中,所述令牌数用于表征分布式缓存系统容纳客户端请求的个数。
[0009]在一些实施例中,所述预设值为1。
[0010]第二方面,本申请提供了一种用于分布式缓存系统的流量控制装置,所述装置包括:记录单元,配置用于记录分布式缓存系统在单位时间内所完成的操作的总次数,并获取所述操作中延时操作的次数,其中,所述操作是所述分布式缓存系统根据客户端请求所执行的读操作或写操作,所述延时操作是时延大于预设时延阈值的操作;计算单元,配置用于根据所述延时操作的次数与所述操作的总次数计算延时操作比例;比较单元,配置用于比较所述延时操作比例与预设比例阈值;限流单元,配置用于根据比较结果确定是否对分布式缓存系统执行限流操作。
[0011 ] 在一些实施例中,所所述时延是每次操作从接收请求到完成应答的时间。
[0012]在一些实施例中,所述限流单元进一步配置用于:当所述延时操作比例大于所述预设比例阈值时,执行限流操作。
[0013]在一些实施例中,所述限流单元进一步配置用于:当所述延时操作比例大于所述预设比例阈值时,将所述分布式缓存系统的令牌数减少预设值,其中,所述令牌数用于表征分布式缓存系统容纳客户端请求的个数。
[0014]在一些实施例中,所述预设值为1。
[0015]本申请提供的用于分布式缓存系统的流量控制方法和装置,通过延迟操作与总操作比例判断是否存在流量异常而需要执行限流操作,由于延迟操作以操作时延作为判断依据且操作时延更能反映分布式系统的性能能否满足客户端的要求,从而能准确地确定执行限流操作的时机。
【附图说明】
[0016]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0017]图1是本申请可以应用于其中的示例性系统架构图;
[0018]图2是根据本申请的用于分布式缓存系统的流量控制方法的一个实施例的流程图;
[0019]图3是根据本申请的用于分布式缓存系统的流量控制方法的又一个实施例的流程图;
[0020]图4是根据本申请的用于分布式缓存系统的流量控制装置的一个实施例的结构示意图;
[0021]图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
【具体实施方式】
[0022]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0023]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0024]图1示出了可以应用本申请的用于分布式缓存系统的流量控制方法或装置的实施例的示例性系统架构100。
[0025]如图1所示,系统架构100可以包括终端设备101、102、103,网络104、106、代理服务器105、缓存服务器107、108、109。网络104、106分别用以在终端设备101、102、103和代理服务器105之间以及代理服务器105和缓存服务器107、108、109之间提供通信链路的介质。网络104、106可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0026]用户可以使用终端设备101、102、103通过网络104与代理服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、社交平台软件等。
[0027]终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Aud1 Layer III,动态影像专家压缩标准音频层面3)、MP4 (Moving PictureExperts Group Aud1 Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
[0028]代理服务器105可以是为终端设备101、102、103和缓存服务器107、108、109之间提供非直接连接的服务器。例如,代理服务器可接收终端设备101、102、103发送的数据读写请求并将数据读写请求转发到对应的缓存服务器上并在缓存服务器完成相应的请求后将处理结果反馈给终端设备。
[0029]缓存服务器可以是处理读写请求的存储节点。缓存服务器在接收到代理服务器转发的读写请求后执行相应的读写请求并返回处理结果给代理服务器。
[0030]需要说明的是,本申请实施例所提供的用于分布式缓存系统的流量控制方法一般由代理服务器105执行,相应地,用于分布式缓存系统的流量控制装置一般设置于代理服务器105中。
[0031]应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0032]继续参考图2,示出了根据本申请的用于分布式缓存系统的流量控制方法的一个实施例的流程200。所述的用于分布式缓存系统的流量控制方法,包括以下步骤:
[0033]步骤201,记录分布式缓存系统在单位时间内所完成的操作的总次数,并获取该操作中延时操作的次数。
[0034]在本实施例中,用于分布式缓存系统的流量控制方法运行于其上的电子设备(例如图1所示的代理服务器105)可以首先记录分布式缓存系统在单位时间内所完成的操作的总次数。其中,单位时间可以根据需要进行设定。为了保证记录的实时性,通常选用较短的时间作为单位时间。该操作可以是上述分布式缓存系统根据客户端请求所执行的读操作或写操作。通常,电子设备可以将其执行的所有操作以日志文件的形式进行存储。电子设备可以通过对日志文件的查询获取分布式缓存系统在单位时间所执行的所有读操作或写操作的信息。电子设备可以对日志文件中记录的操作进行次数统计,即可记录操作的总次数。本领域技术人员可