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

相关推荐
Zaki_gd2 小时前
Cortex-M7 D-Cache 与 DMA 缓存一致性说明
java·spring·缓存
keyborad pianist2 小时前
一篇文章学会Redis
数据库·redis·缓存
XDHCOM5 小时前
TP5框架Redis分布式缓存实战,解决高并发场景下的数据一致性问题
redis·分布式·缓存
手握风云-5 小时前
Redis:不只是缓存那么简单(一)
redis·缓存
XDHCOM8 小时前
Redis本地化实现策略与应用问题解析,如何配置Redis本地化,常见问题解决
数据库·redis·缓存
Noushiki9 小时前
缓存穿透、缓存击穿、缓存雪崩的概念以及解决方案
缓存
程序猿编码9 小时前
网络数据包环形缓存捕获技术:原理、设计与实现(C/C++代码实现)
linux·c语言·网络·tcp/ip·缓存
FL4m3Y4n1 天前
MySQL缓存策略
数据库·mysql·缓存
野犬寒鸦1 天前
Redis复习记录day1
服务器·开发语言·数据库·redis·缓存
野犬寒鸦1 天前
Redis热点key问题解析与实战解决方案(附大厂实际方案讲解)
服务器·数据库·redis·后端·缓存·bootstrap