栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis(八)—— 企业级解决方案(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis(八)—— 企业级解决方案(一)

Redis(八)—— 企业级解决方案(一)

文章目录

Redis(八)—— 企业级解决方案(一)

1、缓存预热

问题排查解决方案总结 2、缓存雪崩

数据库服务器崩溃(1)问题排查问题分析解决方案(道)总结

1、缓存预热 问题排查

请求数量较高主从之间数据吞吐量较大,数据同步操作频度较高 解决方案

前置准备工作:

日常例行统计数据访问记录,统计访问频度较高的热点数据利用LRU数据删除策略,构建数据留存队列 例如:storm与kafka配合 准备工作:

将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据利用分布式多服务器同时进行数据读取,提速数据加载过程热点数据主从同时预热 实施:

使用脚本程序固定触发数据预热过程如果条件允许,使用了CDN(内容分发网络),效果会更好 总结

缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!

2、缓存雪崩 数据库服务器崩溃(1)
    系统平稳运行过程中,忽然数据库连接量激增应用服务器无法及时处理请求大量408,500错误页面出现客户反复刷新页面获取数据数据库崩溃应用服务器崩溃重启应用服务器无效Redis服务器崩溃Redis集群崩溃重启数据库后再次被瞬间流量放倒
问题排查
    在一个较短的时间内,缓存中较多的key集中过期此周期内请求访问过期的数据,redis未命中,redis向数据库获取数据数据库同时接收到大量的请求无法及时处理Redis大量请求被积压,开始出现超时现象数据库流量激增,数据库崩溃重启后仍然面对缓存中无数据可用Redis服务器资源被严重占用,Redis服务器崩溃Redis集群呈现崩塌,集群瓦解应用服务器无法及时得到数据响应请求,来自客户端的请求数量越来越多,应用服务器崩溃应用服务器,redis,数据库全部重启,效果不理想
问题分析

短时间范围内大量key集中过期 解决方案(道)

    更多的页面静态化处理构建多级缓存架构 Nginx缓存+redis缓存+ehcache缓存检测Mysql严重耗时业务进行优化 对数据库的瓶颈排查:例如超时查询、耗时较高事务等灾难预警机制 监控redis服务器性能指标

    CPU占用、CPU使用率内存容量查询平均响应时间线程数 限流、降级 短时间范围内牺牲一些客户体验,限制一部分请求访问,降低应用服务器压力,待业务低速运转后再逐步放开访问

解决方案(术)

    LRU与LFU切换数据有效期策略调整

    根据业务数据有效期进行分类错峰,A类90分钟,B类80分钟,C类70分钟过期时间使用固定时间+随机值的形式,稀释集中到期的key的数量 超热数据使用永久key定期维护(自动+人工) 对即将过期数据做访问量分析,确认是否延时,配合访问量统计,做热点数据的延时加锁 慎用!

总结

缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力。如能够有效避免过期时间集中,可以有效解决雪崩现象的出现 (约40%),配合其他策略一起使用,并监控服务器的运行数据,根据运行记录做快速调整。

[](

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号