版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(19)国家知识产权局(12)发明专利(10)授权公告号CN115834483B(65)同一申请的已公布的文献号审查员徐思毅(73)专利权人中国工商银行股份有限公司地址100140北京市西城区复兴门内大街55号(72)发明人周歆(74)专利代理机构北京同立钧成知识产权代理有限公司11205专利代理师师索臧建明基于集群的流量控制方法、装置、设备及存储介质本申请提供一种基于集群的流量控制方法、方法应用于电子设备,电子设备中集成有负载均的请求标识和请求对应的并发数阈值;根据请求对应的请求标识,从集群中至少两个服务器节点中确定至少一个目标节点;根据请求的并发数阈值和目标节点的数量,确定目标节点接收所述请求的流量阈值,并将请求与流量阈值进行关联存储;其中,流量阈值用于根据目标节点对小于或等于流量阈值的请求进行接收。本申请确定不同性。21.一种基于集群的流量控制方法,其特征在于,所获取访问集群的请求,确定所述请求对应的请求标识和所述请求对应的并发数阈值;根据所述请求对应的请求标识,从所述集群中至少两个服务器节点中确定至少一个目标节点;根据所述请求的并发数阈值和所述目标节点的数量,确定所述目标节点接收所述请求的流量阈值,并将所述请求与所述流量阈值进行关联存储;其中,所述流量阈值用于根据所述目标节点对小于或等于所述流量阈值的请求进行接收;所述确定所述请求对应的请求标识,包括:确定所述请求中预设字段的字段内容;根据预设的哈希算法,确定所述预设字段的字段内容对应的哈希码,为所述请求对应的请求标识;所述根据所述请求对应的请求标识,从所述集群中至少两个服务器节点中确定至少一若所述请求对应的请求标识不存在于预设的标识数据库中,则将所述哈希码除以所述集群中所述服务器节点的数量取余,将余数加一,得到所述目标节点的数量;根据所述目标节点的数量和所述服务器节点的预设节点排序,从所述集群中至少两个服务器节点中确定至少一个目标节点;其中,所述服务器节点的预设节点排序用于表示对所述服务器节点的预设节点编号进行自小至大的排序。2.根据权利要求1所述的方法,其特征在于,根据所述目标节点的数量和所述服务器节点的预设节点排序,从所述集群中至少两个服务器节点中确定至少一个目标节点,包括:确定所述预设节点排序中,上一个被确定为目标节点的服务器节点,为当前节点;从所述服务器节点的预设节点排序中,确定排在所述当前节点之后的所述目标节点的数量的服务器节点,为所述目标节点。3.根据权利要求2所述的方法,其特征在于,从所述服务器节点的预设节点排序中,确定排在所述当前节点之后的所述目标节点的数量的服务器节点,为所述目标节点,包括:若排在所述当前节点之后的服务器节点的数量小于所述目标节点的数量,则确定排在所述当前节点之后的服务器节点的数量与所述目标节点的数量之间的数量差值;从所述服务器节点的预设节点排序中的第一个服务器节点开始,确定所述数量差值的服务器节点;将排在所述当前节点之后的服务器节点,以及所述预设节点排序中第一个服务器节点开始的所述数量差值的服务器节点,确定为所述目标节点。4.根据权利要求1所述的方法,其特征在于,在从所述集群中至少两个服务器节点中确将所述请求对应的请求标识与所述目标节点关联存储在预设的标识数据库中。5.根据权利要求1所述的方法,其特征在于,根据所述请求对应的请求标识,从所述集群中至少两个服务器节点中确定至少一个目标节点,包括:若所述请求对应的请求标识存在于预设的标识数据库中,则根据所述标识数据库中,请求标识与服务器节点之间的关联关系,确定与所述请求对应的请求标识相关联的服务器36.根据权利要求5所述的方法,其特征在于,在确定与所述请求对应的请求标识相关联将所述请求的流量发送至所述目标节点;其中,所述目标节点用于若接收到的请求流量小于或等于所述请求对应的流量阈值,则对所述请求进行放行;若接收到的请求流量大于所述请求对应的流量阈值,则拒绝对所述请求进行放行。7.根据权利要求1-6中任一所述的方法,其特征在于,根据所述请求的并发数阈值和所述目标节点的数量,确定所述目标节点接收所述请求的流量阈值,包括:将所述请求的并发数阈值除以所述目标节点的数量,得到所述目标节点对所述请求进行接收时的流量阈值。8.一种基于集群的流量控制装置,其特征在于,所述装置包括:请求获取模块,用于获取访问集群的请求,确定所述请求对应的请求标识和所述请求对应的并发数阈值;节点确定模块,用于根据所述请求对应的请求标识,从所述集群中至少两个服务器节点中确定至少一个目标节点;流量阈值确定模块,用于根据所述请求的并发数阈值和所述目标节点的数量,确定所述目标节点接收所述请求的流量阈值,并将所述请求与所述流量阈值进行关联存储;其中,所述流量阈值用于根据所述目标节点对小于或等于所述流量阈值的请求进行接收;所述请求获取模块,具体用于确定所述请求中预设字段的字段内容;根据预设的哈希算法,确定所述预设字段的字段内容对应的哈希码,为所述请求对应的请求标识;所述节点确定模块,具体用于若所述请求对应的请求标识不存在于预设的标识数据库中,则将所述哈希码除以所述集群中所述服务器节点的数量取余,将余数加一,得到所述目标节点的数量;根据所述目标节点的数量和所述服务器节点的预设节点排序,从所述集群中至少两个服务器节点中确定至少一个目标节点;其中,所述服务器节点的预设节点排序用于表示对所述服务器节点的预设节点编号进行自小至大的排序。所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的基于集群的流量控制方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的基于集群的流量控制方法。11.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于集群的流量控制方法。4基于集群的流量控制方法、装置、设备及存储介质技术领域[0001]本申请涉及云计算技术领域,尤其涉及一种基于集群的流量控制方法、装置、设备及存储介质。背景技术[0002]限流又称流量控制,在限流的过程中可以监控应用流量的吞吐量或并发线程数等指标。当吞吐量或并发数等指标达到指定的阈值时对流量进行控制,避免系统被瞬时的流量高峰冲垮,保障应用高可用性。在分布式的业务场景下,经常需要对多个节点做一个整体的限流管控,这类整体的管控可以称为集群限流。[0003]现有技术中,集群限流由于同时涉及多个分布式的服务器节点,需要预设一个管理节点对每个服务器节点的情况进行收集统一管控。即,集群中的服务器节点在进行每一笔交易时,都需要与管理节点进行交互。在大规模的分布式集群下,服务器节点与管理节点之间的交互会占据非常多的性能开销,对于请求的时延也会有一定增加。当管理节点出现故障时,会影响整个集群的流量控制,造成集群的流量控制效率较低。发明内容[0004]本申请提供一种基于集群的流量控制方法、装置、设备及存储介质,用以提高集群中请求的流量控制效率。[0006]获取访问集群的请求,确定所述请求对应的请求标识和所述请求对应的并发数阈[0007]根据所述请求对应的请求标识,从所述集群中至少两个服务器节点中确定至少一个目标节点;[0008]根据所述请求的并发数阈值和所述目标节点的数量,确定所述目标节点接收所述请求的流量阈值,并将所述请求与所述流量阈值进行关联存储;其中,所述流量阈值用于根据所述目标节点对小于或等于所述流量阈值的请求进行接收。[0010]请求获取模块,用于获取访问集群的请求,确定所述请求对应的请求标识和所述请求对应的并发数阈值;[0011]节点确定模块,用于根据所述请求对应的请求标识,从所述集群中至少两个服务器节点中确定至少一个目标节点;[0012]流量阈值确定模块,用于根据所述请求的并发数阈值和所述目标节点的数量,确定所述目标节点接收所述请求的流量阈值,并将所述请求与所述流量阈值进行关联存储;其中,所述流量阈值用于根据所述目标节点对小于或等于所述流量阈值的请求进行接收。[0013]第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;5[0014]所述存储器存储计算机执行指令;[0015]所述处理器执行所述存储器存储的计算机执行指令,以实现如本申请第一方面所述的基于集群的流量控制方法。[0016]第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本申请第一方面所述的基于集群的流量控制方法。[0017]第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本申请第一方面所述的基于集群的流量控制方法。[0018]本申请提供的一种基于集群的流量控制方法、装置、设备及存储介质,通过确定打入到集群中的请求所对应的请求标识,确定该请求标识所对应的目标节点。即,对于该请求标识的请求,由目标节点进行接收。根据预设的该请求的并发数阈值和目标节点的数量,确定每个目标节点所能接收的该请求的流量阈值,实现由目标节点依据流量阈值对请求的流量进行控制。现有技术中,由一个管理节点对所有的请求进行流量控制,对管理节点的可用性带来极大挑战,管理节点的可用性直接影响流量控制的精度和效率。解决了现有技术中,通过管理节点进行流量控制所造成的流量控制稳定性差的问题。通过确定请求对应的目标节点和各目标节点的流量阈值,实现对不同请求进行针对性地流量控制,提高流量控制的精度和效率。附图说明[0019]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。[0020]图1为本申请实施例提供的一种集群限流架构图;[0021]图2为本申请实施例提供的一种基于集群的流量控制方法的流程示意图;[0022]图3为本申请实施例提供的一种集群限流架构图;[0023]图4为本申请实施例提供的一种基于集群的流量控制方法的流程示意图;[0024]图5为本申请实施例提供的一种基于集群的流量控制装置的结构框图;[0025]图6为本申请实施例提供的一种基于集群的流量控制装置的结构框图;[0026]图7为本申请实施例提供的一种电子设备的结构框图;[0027]图8为本申请实施例提供的一种电子设备的结构框图。[0028]通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。具体实施方式[0029]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。[0030]应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其6[0031]下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存[0033]需要注意的是,由于篇幅所限,本申请说明书没有穷举所有可选的实施方式,本领域技术人员在阅读本申请说明书后,应该能够想到,只要技术特征不互相矛盾,那么技术特征的任意组合均可以构成可选的实施方式。下面对各实施例进行详细说明。[0034]随着微服务的推广,越来越多的企业开始使用微服务。微服务治理是微服务使用过程中很重要的一个环节。如何保证微服务的高可用,是现在服务治理的重要任务。而在服务治理的领域中,限流是一种重要的隔离手段。[0035]限流又称流量控制,限流的原理是监控应用流量的吞吐量或并发线程数等指标,当吞吐量或并发数等指标达到指定阈值时对流量进行控制,避免系统被瞬时的流量高峰冲[0036]单个服务器节点的限流实现均在节点内闭环,而在分布式的业务场景下,经常会需要对多个服务器节点做整体的限流管控,这类整体的管控称为集群限流。集群限流由于同时涉及多个分布式的服务器节点,需要对每个服务器节点的情况进行收集和统一管控,在实现难度上较高,在安全性上也相对较弱。[0037]目前的集群限流大多采用搭建一个统一的“管理节点”对每个服务器节点的限流布式缓存设备。图1为相关技术中的集群限流架构图。如图1所示,请求打入集群中,集群访问管理节点确定是否需要拦截当前请求。通过Redis对每个请求在每台节点上的情况进行记录,并实时响应当前节点是否需要限流,节点在收到来自管理节点的消息后决定是否放行当前请求。若管理节点返回的消息为放行,则服务器节点放行请求;若管理节点返回的消息为拒绝,则服务器节点拒绝放行请求。[0038]服务器节点的每一笔交易都需要和管理节点进行交互,在大规模的分布式集群下,这种交互和调用会占据非常多的性能开销,对于请求的时延会有一定增加。此外,由于成千上万的连接与管理节点进行访问,会对管理节点的可用性带来极大的挑战,当管理节点不可用时,会严重影响集群的流量控制效率和精度。[0039]本申请提供的一种基于集群的流量控制方法、装置、设备及存储介质,旨在解决现有技术的如上技术问题。[0040]下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。7[0041]图2是根据本申请实施例提供的一种基于集群的流量控制方法的流程示意图,该方法可以由一种基于集群的流量控制装置执行。如图2所示,该方法包括以下步骤:[0042]S201、获取访问集群的请求,确定请求对应的请求标识和请求对应的并发数阈值。[0043]示例性地,集群中可以包括多个服务器节点和一个负载均衡器,负载均衡器与各个服务器节点连接。请求打入到集群中,由负载均衡器接收到访问集群的请求。每个请求对应有唯一的请求标识,例如,负载均衡器可以从请求中的预设字段中获取请求标识。每个请求标识可以表示一种请求的类型,例如,对于支付类型的请求,请求标识为001,对于查询类[0044]各类型的请求在向集群发送请求时,可以同时发送多条请求,即以并发打入集群。例如,请求标识为001的类型的请求,该类型的请求的并发数最多可以是50,即最多可以同时向集群发送50条该类型的请求。将各类型请求的最大并发数确定为各类型的请求的并发数阈值。各类型请求的并发数阈值可以由工作人员统计,在请求实际访问集群时,并发数不会超过并发数阈值。以请求标识表示请求的类型,预先设置各类型的请求的并发数阈值,将请求标识与对应的并发数阈值进行关联存储。在确定请求的请求标识后,可以确定该请求对应的并发数阈值。在进行流量控制时,集群实际接收到的请求的并发数等于或小于预设的并发数阈值。[0045]预先设置一个标识数据库,标识数据库中可以存放集群接收过的请求的请求标识。在得到请求标识后,可以先确定请求的请求标识是否存在于标识数据库中,若不存在,则可以进一步确定请求的并发数阈值。集群在每接收到一种新的类型的请求时,都会记录处理该请求的服务器节点,将请求的请求标识与处理该请求的的服务器节点关联存储在标识数据库中。在每次接收到新的类型的请求时,还可以确定对应的服务器节点能够接收的流量阈值,流量阈值可以是服务器节点能够接收的该类型的请求的最大流量值,可以将请求标识与流量阈值关联存储在标识数据库中。[0046]本实施例中,不同请求标识的请求可以对应有相同或不同的服务器节点,即不同请求标识的请求由对应的服务器节点进行接收和处理。例如,对于001请求标识的请求,可以由服务器节点一和服务器节点二接收;对于001请求标识的请求,可以由服务器节点三和服务器节点四接收;对于003请求标识的请求,可以由服务器节点五和服务器节点一接收。若集群接收过某请求标识的请求,则可以将接收该请求的服务器节点的编号与请求标识关联存储在预设的标识数据库中,便于在下次有相同请求标识的请求打入时,直接确定对应的服务器节点进行请求的处理。因此,在得到请求标识后,确定请求的请求标识是否存在于标识数据库中,若存在,则确定该请求标识对应的服务器节点,不需要进行后续的步骤,即不需要根据请求对应的请求标识,从集群中至少两个服务器节点中确定目标节点。若标识数据库中记录有请求标识对应的服务器节点能接收的流量阈值,则也不需要确定请求对应的并发数阈值。[0047]S202、根据请求对应的请求标识,从集群中至少两个服务器节点中确定至少一个[0048]示例性地,集群中包括多个服务器节点,在得到请求标识后,从多个服务器节点中确定一个或多个节点,作为目标节点。例如,可以从预设的标识数据库中查找是否存储有该8[0049]可以预先为各个服务器节点进行编号,在得到请求标识后,若预设的标识数据库中没有该请求标识,则可以基于预设的编号计算规则,对请求标识进行计算,计算得到的结果就是目标节点的编号,从而确定目标节点。[0050]本实施例中,在从至少两个服务器节点中确定至少一个目标节点之后,还包括:将请求对应的请求标识与目标节点关联存储在预设的标识数据库中。[0051]具体的,在确定请求标识对应的目标节点后,将请求标识和目标节点关联存储在预设的标识数据库中,便于在再次接收到该请求标识的请求时,可以直接从标识数据库中确定对应的目标节点,避免了每次接收到请求时都计算一次目标节点的过程,提高目标节点的确定效率,进而提高流量控制的效率。[0052]本实施例中,根据请求对应的请求标识,从集群中至少两个服务器节点中确定至少一个目标节点,包括:若请求对应的请求标识存在于预设的标识数据库中,则根据标识数据库中,请求标识与服务器节点之间的关联关系,确定与请求对应的请求标识相关联的服[0053]具体的,在确定请求标识后,可以根据预设的计算方法,确定与请求标识对应的目标节点。也可以先从标识数据库中查找是否存在该请求标识,若不存在,则再计算与请求标识对应的目标节点;若存在,则根据预设的请求标识与服务器节点之间的关联关系,直接从标识数据库中确定与请求对应的请求标识相关联的服务器节点,作为目标节点。提高了目标节点的确定效率,进而提高请求的处理效率。[0054]本实施例中,在确定与请求对应的请求标识相关联的服务器节点,为目标节点之后,还包括:将请求的流量发送至目标节点;其中,目标节点用于若接收到的请求流量小于或等于请求对应的流量阈值,则对请求进行放行;若接收到的请求流量大于请求对应的流[0055]具体的,若标识数据库中存在请求标识,则说明集群接收过该请求标识的请求,对该请求标识的请求进行过流量控制。标识数据库中记录有该请求标识对应的目标节点所能接收的流量阈值。负载均衡器将请求发送给对应的各目标节点,例如,负载均衡器可以将请求的流量进行均分,发送给各目标节点。各目标节点在接收到请求的流量时,还可以接收自身处理该请求的流量阈值,并将接收到的流量与流量阈值进行比较,若接收到的请求流量小于或等于请求对应的流量阈值,则对请求进行放行;若接收到的请求流量大于请求对应[0056]这样设置的有益效果在于,若集群接收过同样请求标识的请求,则可以直接确定目标节点和流量阈值,目标节点根据流量阈值对请求的流量进行控制,实现对不同请求标识的请求进行流量的针对性控制,提高限流的精度和效率。并避免目标节点放行过多的流[0057]S203、根据请求的并发数阈值和目标节点的数量,确定目标节点接收请求的流量阈值,并将请求与流量阈值进行关联存储;其中,流量阈值用于根据目标节点对小于或等于流量阈值的请求进行接收。[0058]示例性地,若标识数据库中不存在请求标识,则根据请求标识计算得到目标节点的编号,从而确定目标节点。对于一种请求标识的请求,目标节点可以是一个或多个。确定目标节点的数量,根据请求的并发数阈值和目标节点的数量,确定每个目标节点接收该请9求的流量阈值,即,确定各目标节点能接收该请求的最大流量值。并将该请求的请求标识与流量阈值进行关联存储,可以存储在标识数据库中,便于集群下次接收到该请求标识的请求时,直接确定目标节点的流量阈值。通过流量阈值,目标节点可以对请求进行限流,对小于或等于流量阈值的请求进行接收,对大于流量阈值的请求进行拒绝。[0059]本实施例中,根据请求的并发数阈值和目标节点的数量,确定目标节点接收请求的流量阈值,包括:将请求的并发数除以目标节点的数量,得到目标节点对请求进行接收时的流量阈值。[0060]具体的,不同请求标识的请求对应的并发数阈值为预先设置,在确定目标节点的数量后,可以将并发数阈值均分给各目标节点。即,将请求的并发数阈值除以目标节点的数量,得到各目标节点对请求进行接收时,所能接收的流量阈值。例如,请求的并发数阈值为50的并发数,目标节点为服务器节点一和服务器节点二,则服务器节点一和服务器节点二能够接收请求的流量阈值为25,即,这两个目标节点分别能接收该请求的并发数最大为25。[0061]这样设置的有益效果在于,可以使目标节点对于某种请求的流量接收能力相同,便于使各个目标节点的请求处理的进度相对一致。且相同的流量阈值便于负载均衡器向各个目标节点平均分配请求,负载均衡器不需要根据目标节点的流量接收能力来分配请求,提高流量控制效率和精度,进而提高目标节点对请求的处理效率。[0062]图3为本实施例中集群限流架构图。图3中请求标识为A,请求A的并发数阈值为50。请求A打入集群后,负载均衡器确定服务器节点1和服务器节点2为目标节点,目标节点的流量阈值为25,则负载均衡将接收到的请求A分配给服务器节点1和服务器节点2。负载均衡器接收到的请求A的并发数等于或小于50,负载均衡器中可以预设有负载均衡策略,根据预设的负载均衡策略将请求A分配给服务器节点1和服务器节点2。例如,可以将请求A均分给两个目标节点。服务器节点1和服务器节点2在接收到请求后,可以判断接收到的请求流量是否超过25,若超过25,则目标节点拒绝请求的放行;若不超过25,则目标节点对请求进行放行。通过与负载均衡器相结合,将集群原先的负载策略进行针对性的调整,将原本集群大量的请求划分到某几个节点中去,以少量节点承接某种请求的所有业务量,提高流量控制的针对性。[0063]本申请实施例提供的一种基于集群的流量控制方法,通过确定打入到集群中的请求所对应的请求标识,确定该请求标识所对应的目标节点。即,对于该请求标识的请求,由目标节点进行接收。根据预设的该请求的并发数阈值和目标节点的数量,确定每个目标节点所能接收的该请求的流量阈值,实现由目标节点依据流量阈值对请求的流量进行控制。现有技术中,由一个管理节点对所有的请求进行流量控制,对管理节点的可用性带来极大挑战,管理节点的可用性直接影响流量控制的精度和效率。解决了现有技术中,通过管理节点进行流量控制所造成的流量控制稳定性差的问题。通过确定请求对应的目标节点和各目标节点的流量阈值,实现对不同请求进行针对性地流量控制,提高流量控制的精度和效率。[0064]图4为本申请实施例提供的一种基于集群的流量控制方法的流程示意图,该实施例是在上述实施例基础上的可选实施例。[0065]本实施例中,根据请求对应的请求标识,从集群中至少两个服务器节点中确定至少一个目标节点,可细化为:若请求对应的请求标识不存在于预设的标识数据库中,则根据请求对应的请求标识和集群中服务器节点的数量,确定目标节点的数量;根据目标节点的数量和服务器节点的预设节点排序,从集群中至少两个服务器节点中确定至少一个目标节点;其中,服务器节点的预设节点排序用于表示对服务器节点的预设节点编号进行自小至大的排序。[0067]S401、获取访问集群的请求,确定请求对应的请求标识和请求对应的并发数阈值。[0068]示例性地,获取打入到集群的请求,确定预设的请求对应的请求标识和预设的请求对应的并发数阈值。[0069]本实施例中,确定请求对应的请求标识,包括:确定请求中预设字段的字段内容;根据预设的哈希算法,确定预设字段的字段内容对应的哈希码,为请求对应的请求标识。[0070]具体的,请求中可以包括多个字段,例如,可以包括客户编号、渠道编号和请求ID等属性信息的字段。预先设置请求标识的确定算法,例如,可以是哈希算法。获取请求中预设字段的字段内容,例如,可以获取请求ID和客户编号。根据预设的哈希算法,对预设字段的字段内容进行哈希计算,将预设字段的字段内容转换为哈希码,将得到的哈希码确定为请求的请求标识。[0071]这样设置的有益效果在于,可以根据请求中的内容生成唯一的请求标识,便于从标识数据库中进行查找,从而实现对流量的控制。[0072]S402、若请求对应的请求标识不存在于预设的标识数据库中,则根据请求对应的请求标识和集群中服务器节点的数量,确定目标节点的数量。[0073]示例性地,在确定请求标识后,判断请求标识是否存在于预设的标识数据库中,若存在,则确定与该请求标识对应的目标节点和流量阈值,将请求分配给目标节点,目标节点根据流量阈值进行流量控制。[0074]集群中预设有多个服务器节点,确定集群中服务器节点的数量。若请求标识不存在于预设的标识数据库中,根据请求对应的请求标识和集群中服务器节点的数量,确定目标节点的数量。例如,可以预设不同请求标识对应的目标节点的数量,还可以预设节点数量确定算法,根据请求标识和集群中服务器节点的数量,计算得到目标节点的数量。[0075]本实施例中,根据请求对应的请求标识和集群中服务器节点的数量,确定目标节点的数量,包括:将哈希码除以集群中服务器节点的数量取余,将余数加一,得到目标节点的数量。[0076]具体的,预设节点数量确定算法可以是,在得到哈希码,即得到请求标识后,将哈希码除以集群中服务器节点的数量,也就是用请求标识除以服务器节点的数量。相除后取余,再将余数加一,所得到的结果即为目标节点的数量。例如,集群中服务器节点的数量为5,请求标识除以5取余,取余为0至4,余数加一,目标节点的数量为1至5。[0077]通过简单的除法和加法,可以快速得到目标节点的数量,并保证目标节点的数量小于或等于集群中服务器节点的数量,保证限流的可行性。[0078]S403、根据目标节点的数量和服务器节点的预设节点排序,从集群中至少两个服务器节点中确定至少一个目标节点;其中,服务器节点的预设节点排序用于表示对服务器节点的预设节点编号进行自小至大的排序。[0079]示例性地,预先为服务器节点进行编号,例如,可以采用自然数对服务器节点进行编号。将服务器节点根据编号大小进行排序,得到预设节点排序,预设节点排序可以是对服11务器节点的预设的节点编号进行自小至大的排序所得到的排序结果。例如,集群中有五个[0080]根据目标节点的数量和服务器节点的预设节点排序,从集群中至少两个服务器节点中确定至少一个目标节点。可以从预设节点排序中随机选择目标节点数量的服务器节点,作为目标节点。所选取的目标节点的编号可以为相邻编号。也可以从预设节点排序中的第一个服务器节点开始,将目标节点数量的服务器节点确定为目标节点。例如,目标节点的数量为二,则可以将编号为1和编号为2的服务器节点确定为目标节点。[0081]本实施例中,根据目标节点的数量和服务器节点的预设节点排序,从集群中至少两个服务器节点中确定至少一个目标节点,包括:确定预设节点排序中,上一个被确定为目标节点的服务器节点,为当前节点;从服务器节点的预设节点排序中,确定排在当前节点之后的目标节点的数量的服务器节点,为目标节点。[0082]具体的,每次集群在确定请求对应的目标节点时,都会在预设节点排序中记录本次所确定的目标节点的编号。使得在每次确定目标节点时,可以确定上一次所确定的目标节点。例如,集群在第一次收到请求时,请求标识为001,确定的所对应的目标节点为服务器节点一和服务器节点二;集群在第二次收到请求时,请求标识为002,可以确定上一次所确定的目标节点为服务器节点一和服务器节点二。[0083]在确定本次的目标节点时,确定预设节点排序中,上一个被确定为目标节点的服务器节点,为当前节点。可以将上一次被确定的目标节点中,排序最后的一个目标节点,作为当前节点。在得到当前节点后,从预设节点排序中,确定排在当前节点之后,且数量为目标节点的数量的服务器节点。将排在当前节点之后,且数量为目标节点的数量的服务器节点为编号为2的服务器节点,则本次的目标节点为编号为3和编号为4的服务器节点。[0084]这样设置的有益效果在于,通过排序确定目标节点,避免每次都从头开始确定目标节点,导致排在前面的服务器节点的压力过大,实现了对服务器节点的高效利用,不同的服务器节点可以对不同请求进行流量控制,达到集群限流的效果。[0085]本实施例中,从服务器节点的预设节点排序中,确定排在当前节点之后的目标节点的数量的服务器节点,为目标节点,包括:若排在当前节点之后的服务器节点的数量小于目标节点的数量,则确定排在当前节点之后的服务器节点的数量与目标节点的数量之间的数量差值;从服务器节点的预设节点排序中的第一个服务器节点开始,确定数量差值的服务器节点;将排在当前节点之后的服务器节点,以及预设节点排序中第一个服务器节点开始的数量差值的服务器节点,确定为目标节点。[0086]具体的,在确定目标节点的数量以及当前节点之后,可以确定预设节点排在中,当前节点之后的服务器节点的数量是否大于或等于目标节点的数量。若是,则从当前节点之后的服务器节点中确定目标节点数量的节点,作为目标节点;若否,则将排在当前节点之后的服务器节点以及预设节点排序中从头开始的部分服务器节点确定为目标节点。[0087]可以确定排在当前节点之后的服务器节点的数量与目标节点的数量之间的数量差值,从预设节点排序中的第一个服务器节点开始,确定数量差值的服务器节点。例如,数量差值为1,则可以从预设节点排序中确定出第一个服务器节点。将排在当前节点之后的所有服务器节点,以及预设节点排序中第一个服务器节点开始的数量差值的服务器节点,确定为此次的目标节点。例如,预设节点排序为1、2、3、4、5,当前节点为编号为3的服务器节点,目标节点的数量为三。可以确定当前节点之后的服务器节点数量为2,小于目标节点的数量,则确定排在当前节点之后的服务器节点的数量与目标节点的数量之间的数量差值为1.将当前节点之后的所有服务器节点,即编号为4的服务器节点以及编号为5的服务器节点确定为目标节点,再将预设节点排序中编号为1的服务器节点确定为目标节点。在下次确定目标节点时,编号为1的服务器节点即为当前节点。[0088]这样设置的有益效果在于,可以循环在预设节点排序中确定目标节点,使各个节点针对性地负责一种或多种类型的请求的流量控制,提高集群中流量控制的精度。[0089]S404、根据请求的并发数阈值和目标节点的数量,确定目标节点接收请求的流量阈值,并将请求与流量阈值进行关联存储;其中,流量阈值用于根据目标节点对小于或等于流量阈值的请求进行接收。[0090]示例性地,本步骤可以参见上述步骤S203,不再赘述。[0091]本申请实施例提供的一种基于集群的流量控制方法,通过确定打入到集群中的请求所对应的请求标识,确定该请求标识所对应的目标节点。即,对于该请求标识的请求,由目标节点进行接收。根据预设的该请求的并发数阈值和目标节点的数量,确定每个目标节点所能接收的该请求的流量阈值,实现由目标节点依据流量阈值对请求的流量进行控制。现有技术中,由一个管理节点对所有的请求进行流量控制,对管理节点的可用性带来极大挑战,管理节点的可用性直接影响流量控制的精度和效率。解决了现有技术中,通过管理节点进行流量控制所造成的流量控制稳定性差的问题。通过确定请求对应的目标节点和各目标节点的流量阈值,实现对不同请求进行针对性地流量控制,提高流量控制的精度和效率。[0092]图5为本申请实施例提供的一种基于集群的流量控制装置的结构框图。为了便于点确定模块502和流量阈值确定模块503。[0093]请求获取模块501,用于获取访问集群的请求,确定所述请求对应的请求标识和所述请求对应的并发数阈值;[0094]节点确定模块502,用于根据所述请求对应的请求标识,从所述集群中至少两个服务器节点中确定至少一个目标节点;[0095]流量阈值确定模块503,用于根据所述请求的并发数阈值和所述目标节点的数量,确定所述目标节点接收所述请求的流量阈值,并将所述请求与所述流量阈值进行关联存储;其中,所述流量阈值用于根据所述目标节点对小于或等于所述流量阈值的请求进行接[0096]图6为本申请实施例提供的一种基于集群的流量控制装置的结构框图,在图5所示实施例的基础上,如图6所示,节点确定模块502包括数量确定单元5021和目标节点确定单元5022。[0097]数量确定单元5021,用于若所述请求对应的请求标识不存在于预设的标识数据库中,则根据所述请求对应的请求标识和所述集群中所述服务器节点的数量,确定目标节点[0098]目标节点确定单元5022,用于根据所述目标节点的数量和所述服务器节点的预设节点排序,从所述集群中至少两个服务器节点中确定至少一个目标节点;其中,所述服务器节点的预设节点排序用于表示对所述服务器节点的预设节点编号进行自小至大的排序。[0100]确定所述请求中预设字段的字段内容;[0101]根据预设的哈希算法,确定所述预设字段的字段内容对应的哈希码,为所述请求对应的请求标识。[0103]将所述哈希码除以所述集群中所述服务器节点的数量取余,将余数加一,得到所述目标节点的数量。[0105]当前节点确定子单元,用于确定所述预设节点排序中,上一个被确定为目标节点[0106]目标节点选择子单元,用于从所述服务器节点的预设节点排序中,确定排在所述当前节点之后的所述目标节点的数量的服务器节点,为所述目标节点。[0108]若排在所述当前节点之后的服务器节点的数量小于所述目标节点的数量,则确定排在所述当前节点之后的服务器节点的数量与所述目标节点的数量之间的数量差值;[0109]从所述服务器节点的预设节点排序中的第一个服务器节点开始,确定所述数量差值的服务器节点;[0110]将排在所述当前节点之后的服务器节点,以及所述预设节点排序中第一个服务器节点开始的所述数量差值的服务器节点,确定为所述目标节点。[0112]标识存储模块,用于在从所述集群中至少两个服务器节点中确定至少一个目标节点之后,将所述请求对应的请求标识与所述目标节点关联存储在预设的标识数据库中。[0114]若所述请求对应的请求标识存在于预设的标识数据库中,则根据所述标识数据库中,请求标识与服务器节点之间的关联关系,确定与所述请求对应的请求标识相关联的服[0116]流量发送模块,用于在确定与所述请求对应的请求标识相关联的服务器节点,为目标节点之后,将所述请求的流量发送至所述目标节点;其中,所述目标节点用于若接收到的请求流量小于或等于所述请求对应的流量阈值,则对所述请求进行放行;若接收到的请求流量大于所述请求对应的流量阈值,则拒绝对所述请求进行放行。[0118]将所述请求的并发数阈值除以所述目标节点的数量,得到所述目标节点对所述请求进行接收时的流量阈值。[0119]图7为本申请实施例提供的一种电子设备的结构框图,如图7所示,电子设备包括:存储器71,处理器72;存储器71;用于存储处理器72可执行指令的存储器。[0120]其中,处理器72被配置为执行如上述实施例提供的方法。[0121]电子设备还包括接收器73和发送器74。接收器73用于接收其他设备发送的指令和数据,发送器74用于向外部设备发送指令和数据。[0122]图8是根据一示例性实施例示出的一种电子设备的框图,该设备可以是移动电话,字助理等。[0123]设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/0)接口812,传感器组件814,以及通信组件[0124]处理组件802通常控制设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。[0125]存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储[0126]电源组件806为设备800的各种组件提供电力。电源组件806可以包括电源管理系[0127]多媒体组件808包括在所述设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。[0128]音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括[0129]I/0接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可定按钮。[0130]传感器组件814包括一个或多个传感器,用于为设备800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件组件为设备800的显示器和小键盘,传感器组件814还可以检测设备800或设备800一个组件的位置改变,用户与设备800接触的存在或不存在,设备800方位或加速/减速和设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感[0131]通信组件816被配置为便于设备800和其他设备之间有线或无线方式的通信。设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例蓝牙(BT)技术和其他技术来实现。[0132]在示例性实施例中,设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列 [0133]在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由设备800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。[0134]一种非临时性计算机可读存储介质,当该存储介质中的指令由终端设备的处理器执行时,使得终端设备能够执行上述终端设备的基于集群的流量控制方法。[0135]本申请还公开了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本实施例中所述的方法。[0136]本申请以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0137]用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年青岛求实职业技术学院高职单招职业适应性测试模拟试题带答案解析
- Unit 1 Animals in the zoo公开课一等奖创新教案 (表格式共4课时)
- Starter Units 1-3 公开课一等奖创新教案 (表格式6课时)人教版(2024)七年级英语上册
- 2026年湖南三一工业职业技术学院高职单招职业适应性考试备考题库带答案解析
- 2026年类脑芯片项目评估报告
- 深水立管波浪载荷疲劳分析方法
- 意识障碍题目及答案
- 2026年文旅体商融合业态项目营销方案
- 2026年南京交通职业技术学院单招职业技能笔试备考试题带答案解析
- 2026年江西外语外贸职业学院单招职业技能考试模拟试题附答案详解
- 2025年电商平台运营总监资格认证考试试题及答案
- 门窗质量保证措施
- 浙江省2025年初中学业水平考试浙真组合·钱塘甬真卷(含答案)
- (高清版)DB34∕T 5225-2025 风景名胜区拟建项目对景观及生态影响评价技术规范
- 社区矫正面试试题及答案
- 《察今》(课件)-【中职专用】高二语文(高教版2023拓展模块下册)
- GB/T 30425-2025高压直流输电换流阀水冷却设备
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- 2025年园长大赛测试题及答案
- 生命体征的评估及护理
- 2024年国家公务员考试行测真题附解析答案
评论
0/150
提交评论