一种动态控制数据访问的方法和装置制造方法及图纸

技术编号:20448730 阅读:19 留言:0更新日期:2019-02-27 02:52
本发明专利技术公开了一种动态控制数据访问的方法和装置,涉及计算机技术领域。该方法的一个具体实施方式包括:接收用户的数据访问请求;确定用户的标识是否对应当前响应范围;当该用户的标识不对应当前响应范围时,则拒绝该用户的数据访问请求,否则响应该用户的数据访问请求并返回相应数据;其中,在响应用户的数据访问请求时,当缓存中存在相应数据,则从缓存中读取相应数据,否则从数据库读取相应数据,以及将该数据存储于缓存。本发明专利技术采用根据系统负载或人为需要动态控制数据访问的技术手段,可对缓存进行预热,提高了系统运行的稳定性和用户体验。

A Method and Device for Dynamic Control of Data Access

The invention discloses a method and device for dynamically controlling data access, which relates to the field of computer technology. One specific implementation of the method includes: receiving a user's data access request; determining whether the user's identity corresponds to the current response range; rejecting the user's data access request when the user's identity does not correspond to the previous response range; otherwise responding to the user's data access request and returning the corresponding data; in which, when responding to the user's data access request, When the corresponding data exists in the cache, the corresponding data is read from the cache, otherwise the corresponding data is read from the database and stored in the cache. The invention adopts the technical means of dynamically controlling data access according to the system load or human needs, can preheat the cache, and improves the stability of the system operation and user experience.

【技术实现步骤摘要】
一种动态控制数据访问的方法和装置
本专利技术涉及计算机
,尤其涉及一种动态控制数据访问方法、装置、电子设备和计算机可读介质。
技术介绍
因为业务功能的部署,有时会遇到用户数据访问量瞬时激增的情况,此时大量用户请求同时访问数据库,造成数据库连接数暴涨,甚至会引发线程卡断,导致服务堵塞,接口无法响应,系统瘫痪;有时因为系统故障重启,缓存中没有相应数据,也会导致数据库瞬时访问压力过大,有可能会造成系统再次崩溃,用户体验极差。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:如果保证核心业务,系统降级运行,关闭辅助业务,虽然降低了服务的多样性,但对数据库的访问冲击并不会下降很多,且因缓存中没有辅助业务的相应数据,当辅助业务开启时,有可能同样会造成瞬时访问量激增的情况,降低用户体验;可提前将数据导入缓存中,对缓存进行预热,但并不能准确判断已导入缓存的数据是否是用户访问所需的,若导入量过大又会对缓存造成压力,影响系统性能。
技术实现思路
有鉴于此,本专利技术实施例提供一种动态控制数据访问方法、装置、电子设备和计算机可读介质,能够根据系统负载动态控制数据访问量,可使数据被平缓地导入至缓存中,控制数据库并发读取数据的操作的数量,根据系统运行情况减少或恢复数据库的数据访问量,提升系统在高数据访问量下运行的稳定性,提高用户体验。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种动态控制数据访问的方法,其特征在于,包括:接收用户的数据访问请求;确定所述用户的标识是否对应所述当前响应范围;当该用户的标识不对应所述当前响应范围时,则拒绝该用户的数据访问请求,否则响应该用户的数据访问请求并返回相应数据;其中,在响应所述用户的数据访问请求时,当缓存中存在所述相应数据,则从所述缓存中读取所述相应数据,否则从数据库读取所述相应数据,以及将该数据存储于所述缓存。可选地,确定所述用户的标识是否对应所述当前响应范围包括:根据该用户的标识和预定的映射方法计算该用户的响应值,当该响应值不在所述当前响应范围内,则判定所述用户的标识不对应所述当前响应范围,否则判定所述用户的标识对应所述当前响应范围。可选地,所述当前响应范围是区间[0,k),k是1-100之间的整数,实现所述预设的映射方法包括哈希函数,其中,所述哈希函数被构造成使得所述响应值是在0-99之间的整数。可选地,所述当前响应范围由后台配置管理系统根据系统负载调整,并把调整的响应范围利用当前响应范围变化消息通知所述监听模块。可选地,所述用户的标识包括:用户的UUID或用户的位置信息。可选地,所述当前响应范围根据系统负载动态调整或根据设定值确定。为实现上述目的,根据本专利技术实施例的另一个方面,提供了一种动态控制数据访问的装置,其特征在于,包括:后台配置模块,用于接收当前响应范围;实时接口服务模块,用于确定所述用户的标识是否对应所述当前响应范围;当该用户的标识不对应所述当前响应范围时,则拒绝该用户的数据访问请求,否则响应该用户的数据访问请求并返回相应数据,其中,所述实时接口服务模块还包括缓存单元,在响应所述用户的数据访问请求时,当所述缓存单元中存在所述相应数据,则从所述缓存单元中读取所述相应数据,否则从数据库读取所述相应数据,以及将该数据存储于所述缓存单元。可选地,确定所述用户的标识是否对应所述当前响应范围包括:根据该用户的标识和预定的映射方法计算该用户的响应值,当该响应值不在所述当前响应范围内,则判定所述用户的标识不对应所述当前响应范围,否则判定所述用户的标识对应所述当前响应范围。可选地,所述当前响应范围是区间[0,k),k是1-100之间的整数,实现所述预设的映射方法包括哈希函数,其中,所述哈希函数被构造成使得所述响应值是在0-99之间的整数。可选地,所述后台配置模块还包括监听单元,所述监听单元用于根据系统负载调整所述当前响应范围,并把调整的所述当前响应范围通知所述后台配置模块。可选地,所述用户的标识包括:用户的UUID或用户的位置信息。可选地,所述当前响应范围根据系统负载动态调整或根据设定值确定。为实现上述目的,根据本专利技术实施例的再一个方面,提供了一种动态控制数据访问的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现一种动态控制数据访问的方法中任一所述的方法。为实现上述目的,根据本专利技术实施例的再一个方面,提供了一种动态控制数据访问的计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现一种动态控制数据访问的方法中任一所述的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用根据系统负载或人为需要动态控制数据访问的技术手段,所以克服了系统因为瞬时数据访问高峰而导致服务性能降低的技术问题,进而达到使缓存平缓预热,提升系统运行稳定性和用户体验的技术效果。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的一种动态控制数据访问的方法的主要流程的示意图;图2是根据本专利技术实施例的一种动态控制数据访问的装置的主要部分的示意图;图3是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的一种动态控制数据访问的方法的主要流程的示意图,如图1所示:步骤S10接收用户的数据访问请求;步骤S11确定所述用户的标识是否对应当前响应范围,其中,所述当前响应范围根据系统负载动态调整或根据设定值确定;可根据该用户的标识和预定的映射方法计算该用户的响应值,当该响应值不在所述当前响应范围内,则判定所述用户的标识不对应所述当前响应范围,拒绝该用户的请求,否则判定所述用户的标识对应所述当前响应范围,响应该用户的数据访问请求并返回相应数据。例如可设置当前响应范围是[0,k),其中k是0-100之间的某一整数,选取所述用户的UUID(UniversallyUniqueIdentifier,通用唯一识别码)作为用户标识,使用所述用户UUID为输入值,可构造哈希函数作为所述预设的映射方法,使得该哈希函数输出的响应值为在0-99之间的某一个整数m,若m<k,则该用户的标识对应所述当前响应范围,若m≥k,则该用户的标识不对应所述当前响应范围。在上述实施例中,如果将k设置为1,则响应范围为[0,1),即只有响应值m=0的用户满足当前响应范围,根据大数据理论可知,将有1%的用户满足当前响应范围,这1%的用户通过访问数据库得到响应数据,并将数据存储于缓存中。即通过调整k值得大小动态控制数据访问响应,当k值较小时,数据库不会响应瞬时的大量访问请求,而是只响应允许数据访问的小部分访问请求,并将这部分响应数据储存于缓存之中,因此,缓存不会瞬时存储大量响应数本文档来自技高网...

【技术保护点】
1.一种动态控制数据访问的方法,其特征在于,包括:接收用户的数据访问请求;确定所述用户的标识是否对应当前响应范围;当该用户的标识不对应所述当前响应范围时,则拒绝该用户的数据访问请求,否则响应该用户的数据访问请求并返回相应数据;其中,在响应所述用户的数据访问请求时,当缓存中存在所述相应数据,则从所述缓存中读取所述相应数据,否则从数据库读取所述相应数据,以及将该数据存储于所述缓存。

【技术特征摘要】
1.一种动态控制数据访问的方法,其特征在于,包括:接收用户的数据访问请求;确定所述用户的标识是否对应当前响应范围;当该用户的标识不对应所述当前响应范围时,则拒绝该用户的数据访问请求,否则响应该用户的数据访问请求并返回相应数据;其中,在响应所述用户的数据访问请求时,当缓存中存在所述相应数据,则从所述缓存中读取所述相应数据,否则从数据库读取所述相应数据,以及将该数据存储于所述缓存。2.根据权利要求1所述的方法,其特征在于,确定所述用户的标识是否对应所述当前响应范围包括:根据该用户的标识和预定的映射方法计算该用户的响应值,当该响应值不在所述当前响应范围内,则判定所述用户的标识不对应所述当前响应范围,否则判定所述用户的标识对应所述当前响应范围。3.根据权利要求2所述的方法,其特征在于,所述当前响应范围是区间[0,k),k是1-100之间的整数,实现所述预设的映射方法包括哈希函数,其中,所述哈希函数被构造成使得所述响应值是在0-99之间的整数。4.根据权利要求1所述的方法,其特征在于,所述用户的标识包括:用户的UUID或用户的位置信息。5.根据权利要求1所述的方法,其特征在于,所述当前响应范围根据系统负载动态调整或根据设定值确定。6.一种动态控制数据访问的装置,其特征在于,包括:后台配置模块,用于接收当前响应范围;实时接口服务模块,用于确定所述用户的标识是否对应所述当前响应范围;当该用户的标识不对应所述当前响应范围时,则拒绝该用户的数据访问请求,否则响应该用户的数据访问请求并返回相应数据,其中,所述实时接口服务模块还包括缓存单...

【专利技术属性】
技术研发人员:马艳刘彧吴骏宇
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1