分布式缓存的25个优秀实践与线上案例.docx
- 智慧IT个人认证 |
- 2021-03-02 发布|
- 342.86 KB|
- 14页
?
? ? ? ?
? ? ?
分布式缓存的25个优秀实践与线上案例
? ? ? ?
?
?
?
?
?
?
? ? ?
? ? ?
? ? ?
?
?
?
杨彪,蚂蚁金服技术专家,《分布式服务架构:原理、设计与实战》和《可伸缩服务架构:框架与中间件》作者。近10年互联网和游戏行业工作经验。
本文节选自即将出版的《可伸缩服务架构:框架与中间件》一书,作者:李艳鹏、杨彪、李海亮、贾博岩、刘淏。
本文主要介绍使用分布式缓存的优秀实践和线上案例。这些案例是笔者在多家互联网公司里积累并形成的优秀实践,能够帮助大家在生产实践中避免很多不必要的生产事故。
一、缓存设计的核心要素
我们在应用中决定使用缓存时,通常需要进行详细的设计,因为设计缓存架构看似简单,实则不然,里面蕴含了很多深奥的原理,如果使用不当,则会造成很多生产事故甚至是服务雪崩之类的严重问题。
笔者在做设计评审的过程中,总结了所有与缓存设计相关的设计点,这里列出来供大家参考。
1、容量规划
缓存内容的大小
缓存内容的数量
淘汰策略
缓存的数据结构
每秒的读峰值
每秒的写峰值
2、性能优化
线程模型
预热方法
缓存分片
冷热数据的比例
3、高可用
复制模型
失效转移
持久策略
缓存重建
4、缓存监控
缓存服务监控
缓存容量监控
缓存请求监控
缓存响应时间监控
5、注意事项
是否有可能发生缓存穿透
是否有大对象
是否使用缓存实现分布式锁
是否使用缓存支持的脚本(Lua)
是否避免了Race Condition
笔者在这里把这些设计点提供给读者,请读者在做缓存设计时把每一项作为一个思考的起点,思考我们在设计缓存时是否想到了这些点,以避免在设计的过程中因忽略某一项而导致严重的线上事故发生。
二、缓存设计的优秀实践
笔者在做设计评审的过程中,总结了一些开发人员在设计缓存系统时的优秀实践,如下所述:
优秀实践1
缓存系统主要消耗的是服务