当前位置: 首页 > web >正文

京东热点缓存探测系统JDhotkey架构剖析

热点探测使用场景

  • MySQL 中被频繁访问的数据 ,如热门商品的主键 Id
  • Redis 缓存中被密集访问的 Key,如热门商品的详情需要 get goods$Id
  • 恶意攻击或机器人爬虫的请求信息,如特定标识的 userId、机器 IP
  • 频繁被访问的接口地址,如获取用户信息接口 /userInfo/ + userId

使用热点探测的好处

提升性能,规避风险
对于无预期的热数据(即突发场景下形成的热 Key),可能会对业务系统带来极大的风险,可将风险分为两个层次:

  1. 对数据层的风险
    正常情况下,Redis 缓存单机就可支持十万左右 QPS,并能通过集群部署提高整体负载能力。对于并发量一般的系统,用 Redis 做缓存就足够了。但是对于瞬时过高并发的请求,因为 Redis 单线程原因会导致正常请求排队,或者因为热点集中导致分片集群压力过载而瘫痪,从而击穿到 DB 引起服务器雪崩。
  2. 对应用服务的风险
    每个应用在单位时间所能接受和处理的请求量是有限的,如果受到恶意请求的攻击,让恶意用户独自占用了大量请求处理资源,就会导致其他人畜无害的正常用户的请求无法及时响应。
    因此,需要一套动态热 Key 检测机制,通过对需要检测的热 Key 规则进行配置,实时监听统计热 Key 数据,当无预期的热点数据出现时,第一时间发现他,并针对这些数据进行特殊处理。如本地缓存、拒绝恶意用户、接口限流 / 降级等

京东热点探测

在这里插入图片描述

  1. 热点规则:配置热 Key 的上报规则,圈出需要重点监测的 Key
  2. 热点上报:应用服务将自己的热 Key 访问情况上报给集中计算单元
  3. 热点统计:收集各应用实例上报的信息,使用滑动窗口算法计算 Key 的热度
  4. 热点推送:当 Key 的热度达到设定值时,推送热 Key 信息至所有应用实例
  5. 热点缓存:各应用实例收到热 Key 信息后,对 Key 值进行本地缓存
    滑动窗口

client

热key上报,key的访问次数积攒起来,等待每半秒发送一次。
为了防止阻塞IKeyCollector使用两个ConcurrentHashMap切换,实现轮流提供读写、暂存key的操作。上报时譬如采用定时器,每隔0.5秒调度一次push方法。在上报过程中,不应阻塞写入操作。所以计划采用2个HashMap加一个atomicLong,如奇数时写入map0,为1写入map1,上传后会清空该map。
在这里插入图片描述
热key新增/删除,监听有新key推送事件,收到来自于worker的新增key

worker

收集各应用实例上报的信息,使用滑动窗口算法计算 Key 的热度。当 Key 的热度达到设定值时,推送热 Key 信息至所有应用实例。和dashboard那边的推送主要区别在于,给app推送每10ms一次dashboard那边1s一次

http://www.xdnf.cn/news/10044.html

相关文章:

  • 鸿蒙OSUniApp 移动端直播流播放实战:打造符合鸿蒙设计风格的播放器#三方框架 #Uniapp
  • AI入门示例
  • 深入解析AQS:Java并发核心框架
  • 宝塔部署 Vue + NestJS 全栈项目
  • 单片机寄存器的四种主要类型!
  • AWS Transit Gateway实战:构建DMZ隔离架构,实现可控的网络互通
  • 模块化设计,static和extern(面试题常见)
  • 2025.5.30工作总结
  • ubuntu20.04安装教程(图文详解)
  • LangChain-结合魔塔社区modelscope的embeddings实现搜索
  • Java八股文——Java基础「概念篇」
  • azure web app创建分步指南
  • 从虚拟化到云原生与Serverless
  • CSS 渐变完全指南:从基础概念到实战案例(线性渐变/径向渐变/重复渐变)
  • 异步并发控制代码详细分析
  • (c++)string的模拟实现
  • 【Office】Excel两列数据比较方法总结
  • 基于大模型预测的FicatIII-IV期股骨头坏死综合治疗研究报告
  • 多模态大语言模型arxiv论文略读(100)
  • LNMP环境中php7.2升级到php7.4
  • Android Native 之 adbd进程分析
  • 视频监控汇聚平台EasyCVR安防小知识:如何通过视频融合平台解决信息孤岛问题?
  • @Pushgateway 数据自动清理
  • 碰一碰发视频系统--基于H5场景开发
  • 选择if day5
  • QPS 和 TPS 详解
  • 竞争加剧,美团的战略升维:反内卷、科技与全球化
  • C++ 游戏开发详细流程
  • 大规模JSON反序列化性能优化实战:Jackson vs FastJSON深度对比与定制化改造
  • Elasticsearch 分析器介绍