[发明专利]一种资源分配方法及装置有效
| 申请号: | 201611050570.7 | 申请日: | 2016-11-24 |
| 公开(公告)号: | CN108111325B | 公开(公告)日: | 2021-06-22 |
| 发明(设计)人: | 罗钧;贾涛;胡伟 | 申请(专利权)人: | 北京金山云网络技术有限公司;北京金山云科技有限公司 |
| 主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L29/08 |
| 代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;项京 |
| 地址: | 100085 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 资源 分配 方法 装置 | ||
本发明实施例公开了一种资源分配方法及装置。方法包括:接收客户端发送的资源请求;从预设缓存中,取出目标资源数据,预设缓存的操作具有原子性,且预设缓存中存储有预先从数据库读取的资源数据;将目标资源数据返回至客户端。通过本方案,能够减轻数据库的查询压力,提升系统并发性能。
技术领域
本发明涉及网络技术领域,特别涉及一种资源分配方法及装置。
背景技术
许多应用系统,尤其是资源管理系统,都会初始化一些公有 资源用于分配给各个用户,例如,公有云平台提供的购买弹性公网IP(Internet Protocol,网际协议)地址的功能和服务,其中,一个IP地址只能分配给一个用户,当多个用户同时发起购买弹性公网IP地址的请求时,极易出现IP地址分配重复的现象,即高并发下资源重复分配的问题。
目前,主要使用乐观锁,基于数据版本(Version)的记录机制,来防止高并发下资源的重复分配。具体的,在基于数据库表的解决方案中,为数据库表增加一个“version”字段,表示数据的版本号,读取出数据时,将此版本号一同读出,之后更新时,对此版本号加1,然后将更新完成后用于提交的数据版本号与数据库表对应记录的当前版本号进行对比,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据(即资源已经被分配),不进行更新。
通过上述方法,利用乐观锁可以改善资源重复分配的状况,但针对每次请求,都需从数据库里重新取一次数据,增加了数据库的查询压力,导致系统并发性能较低。
发明内容
本发明实施例的目的在于提供一种资源分配方法及装置,以减轻数据库的查询压力,提升系统并发性能。具体技术方案如下:
第一方面,本发明实施例提供了一种资源分配方法,所述方法包括:
接收客户端发送的资源请求;
从预设缓存中,取出目标资源数据;所述预设缓存的操作具有原子性,且所述预设缓存中存储有预先从数据库读取的资源数据;
将所述目标资源数据分配给所述客户端。
可选地,所述存储预先从数据库读取的资源数据的步骤,包括:
预先针对指定类型的资源数据,在所述预设缓存中建立对应的资源集合;
将所述数据库中所述指定类型的资源数据对应的数据表与资源集合的对应关系存储至所述预设缓存中;
根据所述对应关系,从所述指定类型的资源数据对应的数据表中获取第一预设数量个资源数据,存储至所述预设缓存中对应的资源集合中。
可选地,所述存储预先从数据库读取的资源数据的步骤,包括:
预先针对数据库中存储的每种类型的资源数据,在所述预设缓存中为每种类型的资源数据建立对应的资源集合;
将数据库中存储的每种类型的资源数据对应的数据表与资源集合的对应关系存储至所述预设缓存中;
根据所述对应关系,分别从每种类型的资源数据对应的数据表中获取不同类型的第二预设数量个资源数据,存储至所述预设缓存中对应的资源集合中。
可选地,所述从预设缓存中,取出目标资源数据的步骤,包括:
根据所述资源请求,确定目标资源数据的类型;
根据所述目标资源数据的类型,从对应的资源集合中取出所述目标资源数据。
可选地,在所述存储至所述预设缓存中对应的资源集合中的步骤之后,还包括:
在所述数据库中,采用数据库行级锁,将所存储至所述预设缓存中的资源数据标识为已缓存资源。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司;北京金山云科技有限公司,未经北京金山云网络技术有限公司;北京金山云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611050570.7/2.html,转载请声明来源钻瓜专利网。





