牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!

简介: 牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!

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


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


image.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集群的扩充)。


介绍


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


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


核心功能:热数据探测并推送至集群各个服务器。


适用场景:


mysql热数据本地缓存

redis热数据本地缓存

黑名单用户本地缓存

爬虫用户限流

接口、用户维度限流

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

集群用户维度限流

集群接口维度限流

worker 端强悍的性能表现


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


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


image.png

image.png



界面效果


image.png


来源:https://gitee.com/jd-platform-opensource/hotkey



相关文章
|
JavaScript Java 关系型数据库
基于 SpringBoot+vue的地方美食系统(Java 毕业设计)上
基于 SpringBoot+vue的地方美食系统(Java 毕业设计)
|
XML Java 数据格式
Spring-实例化bean的四种方式
Spring-实例化bean的四种方式
797 0
|
9月前
|
弹性计算 应用服务中间件 开发者
阿里云最新优惠政策汇总及全解析:助力个人、学生与企业低成本上云
在数字化浪潮的推动下,云服务已成为个人开发者、学生群体及初创企业不可或缺的基础设施。为满足不同用户的需求,阿里云推出了全新的优惠政策,以极具竞争力的价格和灵活的配置,助力用户轻松上云。以下是阿里云最新优惠政策的详细解读。
|
IDE Linux 开发工具
2022.2最新idea破解,window,mac通用
1、安装IDEA,一路next即可,遇到安装路径时,记得修改安装路径。 2、安装完成,打开IDEA,会先弹出一个注册框,勾选Evaluate for free,点击Evaluate,然后进入主界面 3. 开始破解
17154 0
2022.2最新idea破解,window,mac通用
|
人工智能 搜索推荐 算法
解决方案评测|主动式智能导购AI助手构建
阿里云的主动式智能导购AI助手是电商商家提升用户体验和销量的利器。它能实时分析用户行为,提供个性化推荐,支持多渠道无缝对接,并具备语音和文本交互功能。通过注册阿里云账号、开通服务、配置项目、设置推荐策略、集成到平台并测试优化,商家可以轻松部署这一工具。关键代码示例帮助理解API对接和数据处理。建议增强个性化推荐算法、优化交互体验并增加自定义选项,以进一步提升效果。
1208 11
|
运维 Kubernetes 数据可视化
【Docker管理工具】使用Docker部署portainer-ce管理工具
【7月更文挑战第22天】使用Docker部署portainer-ce管理工具
2483 3
【Docker管理工具】使用Docker部署portainer-ce管理工具
|
canal 监控 关系型数据库
canal的特点是什么?如何使用?
【10月更文挑战第23天】canal的特点是什么?如何使用?
979 3
|
IDE 开发者 iOS开发
京东开源的 JD-Hotkey:高效热键管理的技术巅峰
【10月更文挑战第5天】在快节奏的工作与学习中,提高操作效率是每位技术爱好者不懈追求的目标。今天,我们将深入探讨京东开源的 JD-Hotkey 项目,它不仅是一个强大的热键管理工具,更是我们在日常工作中提升生产力的秘密武器。通过本文,你将了解到 JD-Hotkey 的核心功能、技术亮点以及在实际应用中的卓越表现,一同感受其带来的高效与便捷。
1122 4
|
安全 网络安全 开发者
如何在OpenWRT部署uhttpd搭建服务器实现远程访问本地web站点
如何在OpenWRT部署uhttpd搭建服务器实现远程访问本地web站点
1671 0
|
存储 固态存储 芯片
计算机组成原理(1)----存储器相关(2)
计算机组成原理(1)----存储器相关
1809 1