热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 值进行本地缓存(此步骤根据具体业务策略调整)

相关推荐
小鸡脚来咯2 小时前
redis穿透、击穿、雪崩
数据库·redis·缓存
东阳马生架构15 小时前
商品中心—1.B端建品和C端缓存的技术文档一
缓存·商品系统
让我上个超影吧21 小时前
黑马点评【缓存】
java·redis·缓存
blammmp1 天前
Redis: List类型
数据库·redis·缓存
暴躁茹1 天前
std::make_shared简化智能指针 `std::shared_ptr` 的创建过程,并提高性能(减少内存分配次数,提高缓存命中率)
缓存
汪小白JIY1 天前
【C#】多级缓存与多核CPU
缓存·c#·多级缓存
Zfox_1 天前
Redis:渐进式遍历
服务器·数据库·redis·缓存
CHEN5_022 天前
Redis分布式缓存(RDB、AOF、主从同步)
redis·分布式·缓存
在肯德基吃麻辣烫2 天前
《Redis》持久化
数据库·redis·缓存
sclibingqing2 天前
SpringBoot项目使用Redis作为数据缓存
spring boot·redis·缓存