热key探测技术架构设计与实践

参考:

得物热点探测技术架构设计与实践

Redis数据倾斜与JD开源hotkey源码分析揭秘

京东热点检测 HotKey 学习笔记

hotkey: 京东App后台中间件,毫秒级探测热点数据,毫秒级推送至服务器集群内存,大幅降低热key对数据层查询压力

京东毫秒级热key探测框架设计与实践,已实战于618大促

问题一、如何进行热点探测?

首先我们要定义一下如何才能算是一个热点,我们知道热点产生的条件是 2 个:一个时间,一个流量。那么根据这个条件我们可以简单定义一个规则:比如 1 秒内访问 1000 次的数据算是热数据,当然这个数据需要根据具体的业务场景和过往数据进行具体评估。

对于单机应用,检测热数据很简单,直接在本地为每个 Key 创建一个滑动窗口计数器,统计单位时间内的访问总数(频率),并通过一个集合存放检测到的热 Key。

而对于分布式应用 ,对热 Key 的访问是分散在不同的机器上的,无法在本地独立地进行计算,因此,需要一个独立的、集中的热 Key 计算单元

我们可以简单理解为:分布式应用节点感知热点规则配置,将热点数据进行上报,工作节点进行热点数据统计,对于符合阈值的热点进行推送给客户端,应用收到热点信息进行本地缓存等策略这五个步骤:

1.热点规则:配置热 Key 的上报规则,圈出需要重点监测的 Key

2.热点上报:应用服务将自己的热 Key 访问情况上报给集中计算单元

3.热点统计:收集各应用实例上报的信息,使用滑动窗口算法计算 Key 的热度

4.热点推送:当 Key 的热度达到设定值时,推送热 Key 信息至所有应用实例

5.热点缓存:各应用实例收到热 Key 信息后,对 Key 值进行本地缓存(此步骤根据具体业务策略调整)

相关推荐
锋风Fengfeng4 小时前
音视频缓存数学模型
缓存·音视频
qzw12105 小时前
出现缓存雪崩、缓存穿透、缓存预热、缓存更新和缓存降级的场景,以及如何解决
缓存
杏花春雨江南7 小时前
输入:0.5元/百万tokens(缓存命中)或2元(未命中) 输出:8元/百万tokens
缓存
啥都想学的又啥都不会的研究生21 小时前
Redis设计与实现-数据持久化
java·数据库·redis·笔记·缓存·面试
yqcoder1 天前
Redis 的特点
数据库·redis·缓存
老友@1 天前
Caffeine 缓存:简介、优势及应用场景
后端·spring·缓存·优化·caffeine·三级缓存
Cirrod1 天前
react加antd封装表格单、多选组件,支持跨页选择缓存
javascript·react.js·缓存
洛祁枫1 天前
前端发布缓存导致白屏解决方案
前端·缓存