0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JD-hotkey是京东APP 台热数据探测框架

jf_ro2CN3Fa 来源:gitee 作者:gitee 2022-11-14 15:58 次阅读

JD-hotkey 是京东 APP 后台热数据探测框架,历经多次高压压测和 2020 年京东 618 大促考验。

在上线运行的这段时间内,每天探测的key数量数十亿计,精准捕获了大量爬虫、刷子用户,另准确探测大量热门商品并毫秒级推送到各个服务端内存,大幅降低了热数据对数据层的查询压力,提升了应用性能。

4f2c4600-6300-11ed-8abf-dac502259ad0.png

该框架历经多次压测,性能指标主要有两个

1 探测性能:

8核单机worker端每秒可接收处理16万个key探测任务,16核单机至少每秒平稳处理30万以上,实际压测达到37万,CPU平稳支撑,框架无异常。

2 推送性能:

在高并发写入的同时,对外推送目前性能约平稳推送每秒10-12万次,譬如有1千台server,一台worker上每秒产生了100个热key,那么这1秒会平稳推送100 * 1000 = 10万次,10万次推送会明确在1s内全部送达。如果是写入少,推送多,以纯推送来计数的话,该框架每秒可稳定对外推送40-60万次平稳,80万次极限可撑几秒。

每秒单机吞吐量(写入+对外推送)目前在70万左右稳定。

在真实业务场景中,可用1:1000的比例,即1台worker支撑1000台业务服务端的key探测任务,即可带来极大的数据存储资源节省(如对redis集群的扩充)。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

视频教程:https://doc.iocoder.cn/video/

介绍

对任意突发性的无法预先感知的热点请求,包括并不限于热点数据(如突发大量请求同一个商品)、热用户(如爬虫、刷子)、热接口(突发海量请求同一个接口)等,进行毫秒级精准探测到。

然后对这些热数据、热用户等,推送到该应用部署的所有机器JVM内存中,以大幅减轻对后端数据存储层的冲击,并可以由客户端决定如何使用这些热key(譬如对热商品做本地缓存、对热用户进行拒绝访问、对热接口进行熔断或返回默认值)。这些热key在整个应用集群内保持一致性。

核心功能:

热数据探测并推送至集群各个服务器。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

项目地址:https://gitee.com/zhijiantianya/yudao-cloud

视频教程:https://doc.iocoder.cn/video/

适用场景

mysql热数据本地缓存

redis热数据本地缓存

黑名单用户本地缓存

爬虫用户限流

接口、用户维度限流

单机接口、用户维度限流限流

集群用户维度限流

集群接口维度限流

worker 端强悍的性能表现

每10秒打印一行,totalDealCount代表处理过的key总量,可以看到每10秒处理量在270万-310万之间,对应每秒30万左右QPS。

仅需要很少的机器,即可完成海量key的实时探测计算推送任务。比扩容redis集群规模成本低太多。

4f6327b0-6300-11ed-8abf-dac502259ad0.png

513817f8-6300-11ed-8abf-dac502259ad0.png

界面效果

516ad42c-6300-11ed-8abf-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87599
  • 框架
    +关注

    关注

    0

    文章

    297

    浏览量

    17045
  • 京东
    +关注

    关注

    2

    文章

    960

    浏览量

    48111

原文标题:牛逼哄哄的 JD-hotkey !

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用bootload启动,app程序采用ucosiii,接收发送数据n次后app程序就进入了HardFault_Handler的原因?

    使用bootload启动,只要在bootload或者app运行程序中设置SCB->AIRCR后,app程序采用ucosiii,接收发送数据n次后(接收发送采用中断),app程序就
    发表于 04-15 06:34

    京东方科技集团与京东集团全面达成战略合作伙伴关系

    3月1日,京东方科技集团与京东集团在北京签订《战略合作框架协议》,基于此前“双京赋能计划”的良好合作基础,全面达成战略合作伙伴关系。
    的头像 发表于 03-01 18:11 1058次阅读

    USB电源传输3.0协议控制器JD6606S数据手册

    概述JD6606S是一个集成的USB电源传输3.0协议控制器。符合HUAWEI快速充电协议(FCP)、超级充电协议(SCP)、ACF协议和高通快速充电2.0/3.0/3+技术,专为USB型-C型电源
    发表于 02-04 09:05 0次下载

    什么是LlamaIndex?LlamaIndex数据框架的特点和功能

    LlamaIndex是一个数据框架,用于让基于LLM的应用程序摄取、结构化和访问私有或领域特定的数据。它提供Python和Typescript版本。
    的头像 发表于 01-05 11:08 3934次阅读
    什么是LlamaIndex?LlamaIndex<b class='flag-5'>数据</b><b class='flag-5'>框架</b>的特点和功能

    框架与芯片粘接中两种涂胶

    共读好书 工艺分析与优化 冯志攀 张然 付志凯 王冠 (华北光电技术研究所) 摘要: 红外探测框架涂胶工艺具有胶粘剂种类多、涂胶精度要求高等特点,难以同时兼顾工艺效率和工艺效果。为了探索较优的涂胶
    的头像 发表于 01-03 08:40 154次阅读
    <b class='flag-5'>框架</b>与芯片粘接中两种涂胶

    AIO-1684JD4 hdmi口接显示屏,没有反应的原因?

    AIO-1684JD4开发板上电,外接hdmi显示屏,显示屏无任何反应,请问可能的原因
    发表于 09-18 09:11

    如何抓取app数据包 网络抓包原理及实现

    要实现对App的网络数据抓包,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据
    发表于 08-11 09:30 1773次阅读
    如何抓取<b class='flag-5'>app</b><b class='flag-5'>数据</b>包 网络抓包原理及实现

    65.7.11 打造多任务端app应用数据抓取系统 3 #硬声创作季

    APP
    充八万
    发布于 :2023年07月19日 19:03:30

    RJP5001APP-M0 数据

    RJP5001APP-M0 数据
    发表于 07-18 18:44 0次下载
    RJP5001<b class='flag-5'>APP</b>-M0 <b class='flag-5'>数据</b>表

    RJP4301APP-M0 数据

    RJP4301APP-M0 数据
    发表于 07-18 18:44 0次下载
    RJP4301<b class='flag-5'>APP</b>-M0 <b class='flag-5'>数据</b>表

    fastapi框架原理及应用

    Starlette 是目前测试最快的 Python 框架。只有 Uvicorn 超越了它,Uvicorn 不是框架,而是服务器。   Starlette 提供了所有基本的 Web 微框架功能。但是它不提供自动
    发表于 07-18 11:30 572次阅读

    知名开源前端框架uni-app包含热更新代码,谷歌“封杀”

    近日,程序员发帖称自己用开源框架 uni-app 开发的 App 被 Google Play 下架,原因是 uni-app 自带的 SDK 包含违反 Google Play 政策的内容
    的头像 发表于 06-27 16:30 1403次阅读
    知名开源前端<b class='flag-5'>框架</b>uni-<b class='flag-5'>app</b>包含热更新代码,谷歌“封杀”

    NanoBeacon APP使用教程

    APP
    橙群微电子
    发布于 :2023年06月19日 10:11:41

    【开源】智慧农业盒子(4G_GPS)之【蓝牙App显示数据

    一、ShineBlink免开发蓝牙App 用户可以使用 ShineBlink 提供的免开发安卓蓝牙App在开发的过程中查看传感器数据App页面如下图: 蓝牙
    发表于 06-01 09:57

    S32R294的SWT jd_watchpt怎么使用?

    我考虑过带有 jd_Watchpt(IAC8 寄存器)的 S32R294 SWT 可以为安全机制实施“程序序列的逻辑监控”。 根据S32R294参考手册Chapter 48.1.4,SWT地址执行
    发表于 05-17 08:52