[发明专利]一种防止缓存击穿的方法、相关服务器及系统有效
申请号: | 201711024741.3 | 申请日: | 2017-10-27 |
公开(公告)号: | CN109729108B | 公开(公告)日: | 2022-01-14 |
发明(设计)人: | 李凯 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L67/568 | 分类号: | H04L67/568;H04L67/1031;H04L67/10;H04L67/562 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 李辉 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 缓存 击穿 方法 相关 服务器 系统 | ||
本申请实施例提供了一种防止缓存击穿的方法、相关服务器以及系统,通过监控服务器监控缓存服务器集群中的缓存服务器的访问流量参数,该访问流量参数能够反应缓存服务器的负载情况,监控服务器动态地将负载较大的缓存服务器中关键字对应的值迁移到其他缓存服务器中,从而最大程度利用整个缓存服务器集群的整体负载能力,以避免在使用缓存时由于单台缓存服务器的瞬间负载较大导致引发缓存击穿的问题。
技术领域
本申请涉及数据缓存技术领域,特别涉及一种防止缓存击穿的方法、相关服务器及系统。
背景技术
缓存是网站服务端经常用到的一种技术,在读多写少的业务场景中,通过使用缓存可以有效地支撑高并发地访问量,对后端地数据库等数据源做到很好的保护。当网站使用缓存时,通常都是先检查缓存中是否存在数据,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果。目前市面上有很多缓存产品,比如Redis、Memcached等,不论使用哪种缓存产品,基本都会遇到缓存击穿的问题,因此,如何有效地防止出现缓存击穿是必须要解决的难题。
发明内容
为了解决使用缓存时容易出现缓存击穿,大量请求流向数据库,导致数据库雪崩的问题,本申请实施例提供了一种防止缓存击穿的方法、应用服务器、监控服务器以及系统,通过监控服务器监控缓存服务器集群中的缓存服务器的访问流量参数,该访问流量参数能够反应缓存服务器的负载情况,动态地将负载较大的缓存服务器中关键字对应的值迁移到其他缓存服务器中,从而最大程度利用整个缓存服务器集群的整体负载能力,避免在使用缓存时由于单台缓存服务器的瞬间负载较大导致引发缓存击穿的问题。
在本申请第一方面提供了一种防止缓存击穿的方法,该方法应用于监控服务器中,包括:
监控缓存服务器集群中的缓存服务器对应的访问流量参数,所述访问流量参数包括每秒查询率和/或每秒网络传输流量;
确定所述访问流量参数超过对应的预设阈值的第一缓存服务器;
从所述第一缓存服务器中选择至少一个关键字作为待迁移关键字;
对所述待迁移关键字进行映射,按照映射后的关键字将所述待迁移关键字对应的值从所述第一缓存服务器中迁移至所述缓存服务器集群中的第二缓存服务器。
在本申请第二方面提供了一种监控服务器,包括:
监控模块,用于监控缓存服务器集群中的缓存服务器对应的访问流量参数,所述访问流量参数包括每秒查询率和/或每秒网络传输流量;
确定模块,用于确定所述访问流量参数超过对应的预设阈值的第一缓存服务器;
选择模块,用于从所述第一缓存服务器中选择至少一个关键字作为待迁移关键字;
迁移模块,用于对所述待迁移关键字进行映射,按照映射后的关键字将所述待迁移关键字对应的值从所述第一缓存服务器中迁移至所述缓存服务器集群中的第二缓存服务器。
在本申请第三方面提供了一种防止缓存击穿的方法,应用于应用服务器中,该方法包括:
接收数据请求,确定与所述数据请求相关的关键字;
查看关键字映射关系表中是否存在与所述关键字对应的映射后的关键字;所述关键字映射关系表是监控服务器推送的,用于表征被迁移的关键字与映射后的关键字之间的映射关系;
若存在,根据所述映射后的关键字访问本地缓存,若本地缓存中不存在所述映射后的关键字对应的值,则根据所述映射后的关键字访问缓存服务器集群中的缓存服务器,将访问到的值反馈给客户端。
在本申请第四方面提供了一种应用服务器,包括:
确定模块,用于接收数据请求,确定与所述数据请求相关的关键字;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711024741.3/2.html,转载请声明来源钻瓜专利网。