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

京东热点缓存探测系统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一次

相关文章:

  • Python的Web框架
  • Linux分区与文件系统选择:EXT4与XFS深度解析
  • MCU STM32搭配存储SD NAND(贴片式T卡)于智能皮电手环(Galvanic Skin Response, GSR 手环)的全方位评测
  • SPL做量化----SRMI(动量修正指标)
  • Selenium操作指南(全)
  • 鸿蒙OSUniApp自定义手势识别与操作控制实践#三方框架 #Uniapp
  • vue3中使用swiper轮播图的slideTo方法跳转到指定页面
  • 60天python训练计划----day40
  • Excel 中的SUMIFS用法(基础版),重复项求和
  • EasyExcel复杂Excel导出
  • VSCode无法转到定义python源码(ctrl加单击不跳转)
  • wireshark分析国标rtp ps流
  • 【Office】Excel两列数据比较方法总结
  • 用wireshark抓了个TCP通讯的包
  • Wireshark 在 macOS 上使用及问题解决
  • 智能守护电网安全:探秘输电线路测温装置的科技力量
  • 本地部署Ollama DeepSeek-R1:8B,接入Cherry Studio
  • 力扣刷题Day 65:单词搜索(79)
  • Day40
  • 30V/3A,云岑CP8335B,完美替换EUP3484
  • 石碣仿做网站/广州谷歌seo
  • 商洛免费做网站公司/怎样弄一个自己的平台
  • 网站建设大横幅尺寸/域名停靠浏览器
  • 国外色情 网站 推荐/社会新闻最新消息
  • 建设一个网站多少钱/宁波seo网络推广优化价格
  • 需要注册的企业网站/小程序搭建教程