一种高并发资源检测方法
文献发布时间:2023-06-19 12:16:29
技术领域
本发明属于信息技术领域,尤其是涉及一种高并发资源检测方法。
背景技术
公有云节点创建实例,经常会遇到创建失败的情况,很大部分原因是资源不足导致的,因为资源不足导致创建失败,可能会造成一部分资源已经创建了,另一部分资源未创建成功,这就间接导致了之前创建的资源为脏数据。还需要为这些脏数据单独回退,造成了资源和人力的浪费。
发明内容
有鉴于此,本发明旨在提出一种高并发资源检测方法,以解决上述问题中的不足之处。
为达到上述目的,本发明的技术方案是这样实现的:
一种高并发资源检测方法,请求到达API网关后,在API网关处开始解析产品需要的资源信息,去资源池中寻找对应资源的Token,以Token作为Redis锁的Key,获取当前资源的总量信息,查看需要创建的资源是否充足,如果都充足,则正常创建流程,更新此资源的数量;
释放Redis锁,其他的请求获取此Token,继续判断资源充足与否;
定时更新资源池中的数量与实际使用的数量,避免数据不一致导致误判情况。
进一步的,包括以下步骤:S1、通过API网关分析产品的需求的资源;
S2、分别获取资源的Token信息,根据此Token获取到资源的总量;
S3、根据Token获取该Token的Redis锁,成功获取锁后操作资源的容量;
S4、定期同步Token对应资源的总量和实际使用的资源总量。
进一步的,为每一个资源创建一个Token,每种资源Token值不一样,每种资源与Token一一对应。
进一步的,API网关分析创建资源详情,根据所需的资源获取到该资源的Token,根据此Token获取到分布式锁,通过Redis实现。
进一步的,当获取到锁之后就会得到该资源的剩余量,如果所需资源少于剩余量,则更新改资源的剩余量,该资源可以正常创建。
进一步的,若有N个资源创建成功,某个资源创建失败,需要将这N个资源Token对应的剩余量进行回滚。
进一步的,资源操作完成之后,释放Redis分布式锁,让其它的请求继续操作此资源容量。
进一步的,定时同步资源Token对应的剩余量与实际资源的剩余量,避免出现误判的情况。
相对于现有技术,本发明所述的一种高并发资源检测方法具有以下有益效果:
(1)本发明所述的一种高并发资源检测方法通过redis分布式锁实现高并发串行操作;
(2)本发明所述的一种高并发资源检测方法定期同步资源,避免出现误判的情况;
(3)本发明所述的一种高并发资源检测方法使用Token与资源唯一绑定,有效控制资源的容量。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种高并发资源检测方法示意图;
图2为本发明实施例所述的一种高并发资源检测方法处理流程示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
公有云节点创建实例,经常会遇到创建失败的情况,很大部分原因是资源不足导致的,因为资源不足导致创建失败,可能会造成一部分资源已经创建了,另一部分资源未创建成功,这就间接导致了之前创建的资源为脏数据。还需要为这些脏数据单独回退,造成了资源和人力的浪费。
为了避免这种情况,在创建实例资源的时候就要做预判断,如果资源不足,那么不会创建任何其他的资源。从根本上避免由于某个资源不足导致的整体失败,出现脏数据的情况。提出了一种基于token的分布式锁方案。
请求到了API网关,在API网关处开始解析产品需要的资源信息,去资源池中寻找对应资源的Token,以Token作为Redis锁的Key,获取当前资源的总量信息,查看需要创建的资源是否充足,如果都充足,则正常创建流程,更新此资源的数量。释放Redis锁,其他的请求获取此Token,继续判断资源充足与否。定时更新资源池中的数量与实际使用的数量,避免数据不一致导致误判情况。
具体实现步骤如下:
1.为每一个资源创建一个Token,每种资源Token值不一样,每种资源与Token一一对应。
2.API网关分析创建资源详情,根据所需的资源获取到该资源的Token,根据此Token获取到分布式锁,通过Redis实现。当获取到锁之后就会得到该资源的剩余量。如果所需资源少于剩余量,则更新改资源的剩余量。该资源可以正常创建。
3.若有N个资源创建成功,某个资源创建失败,需要将这N个资源Token对应的剩余量进行回滚。
4.资源操作完成之后,释放Redis分布式锁。让其它的请求继续操作此资源容量。
5.定时同步资源Token对应的剩余量与实际资源的剩余量,避免出现误判的情况。
在具体实施过程中如图1和图2所示,一种高并发资源检测方法,请求到达API网关后,在API网关处开始解析产品需要的资源信息,去资源池中寻找对应资源的Token,以Token作为Redis锁的Key,获取当前资源的总量信息,查看需要创建的资源是否充足,如果都充足,则正常创建流程,更新此资源的数量;
释放Redis锁,其他的请求获取此Token,继续判断资源充足与否;
定时更新资源池中的数量与实际使用的数量,避免数据不一致导致误判情况。
一种高并发资源检测方法包括以下步骤:
S1、通过API网关分析产品的需求的资源;
S2、分别获取资源的Token信息,根据此Token获取到资源的总量;
S3、根据Token获取该Token的Redis锁,成功获取锁后操作资源的容量;
S4、定期同步Token对应资源的总量和实际使用的资源总量。
为每一个资源创建一个Token,每种资源Token值不一样,每种资源与Token一一对应。
API网关分析创建资源详情,根据所需的资源获取到该资源的Token,根据此Token获取到分布式锁,通过Redis实现。
当获取到锁之后就会得到该资源的剩余量,如果所需资源少于剩余量,则更新改资源的剩余量,该资源可以正常创建。
若有N个资源创建成功,某个资源创建失败,需要将这N个资源Token对应的剩余量进行回滚。
资源操作完成之后,释放Redis分布式锁,让其它的请求继续操作此资源容量。
定时同步资源Token对应的剩余量与实际资源的剩余量,避免出现误判的情况。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种高并发资源检测方法
- 一种基于业务优先级的高并发服务资源分配方法