牛逼!“京东热” 框架 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



相关文章
|
安全 Ubuntu Unix
Linux 入门指南:从新手到命令行大师
Linux 入门指南:从新手到命令行大师
423 1
|
JSON 前端开发 Java
@RequestParam这个注解的作用
@RequestParam这个注解的作用
1433 0
|
存储 SQL 关系型数据库
mysql中 如何设置字段不限长度
在MySQL中,可以使用数据类型TEXT来存储不定长的文本数据。如果不需要限制文本的最大长度,可以使用TEXT数据类型而不指定长度。 例如,下面的SQL语句创建一个名为my_table的表,其中包含一个text_column字段,该字段不限长度:
2123 0
|
9月前
|
算法 安全 数据安全/隐私保护
微信红包尾数0-9技巧控制是真的假的?
微信红包尾数控制的技术真相 1. 红包算法基础原理
|
人工智能 自然语言处理 JavaScript
体验通义灵码 @workspace:轻松分析项目结构,结合代码仓库理解工程、查询问答等
当你需要快速了解一个工程、查找工程内的实现逻辑,或有新的诉求需要进行代码变更时,可以在智能问答窗口中通过 @ 可唤起 @workspace,选中后输入你的问题或诉求,通义灵码可快速结合当前仓库进行工程理解、代码查询、代码问答等,同时可以通过自然语言描述需求,结合当前工程生成简单需求或缺陷的整体修改建议和相关建议代码。
|
安全 Ubuntu Shell
深入解析 vsftpd 2.3.4 的笑脸漏洞及其检测方法
本文详细解析了 vsftpd 2.3.4 版本中的“笑脸漏洞”,该漏洞允许攻击者通过特定用户名和密码触发后门,获取远程代码执行权限。文章提供了漏洞概述、影响范围及一个 Python 脚本,用于检测目标服务器是否受此漏洞影响。通过连接至目标服务器并尝试登录特定用户名,脚本能够判断服务器是否存在该漏洞,并给出相应的警告信息。
932 84
|
数据采集 存储 缓存
牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!
牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!
7508 0
牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!
|
XML JSON 分布式计算
如何设计财务对账系统 —— 从0到1搭建对账中心实战
卡拉云快速搭建企业内部对账系统
13164 3
如何设计财务对账系统 —— 从0到1搭建对账中心实战
|
安全 数据安全/隐私保护 Python
版权保卫战的新武器!揭秘数字水印如何成为知识产权的守护神!
【8月更文挑战第22天】数字水印技术在知识产权保护中至关重要。它通过在数字媒体中嵌入不可见信息(如版权标识),在不影响原内容的前提下实现作品的版权保护、防篡改及非法分发追踪。本文将概述数字水印的概念、技术原理(包括空间域与频域方法),并提供Python代码示例展示水印的嵌入与提取过程。此外,还将分享一个出版社如何运用数字水印成功维护自身版权的真实案例,以此展现数字水印在实际应用中的价值与潜力。
907 0
|
缓存 图形学 异构计算
【Shader渲染流水线流程】
【Shader渲染流水线流程】
下一篇
开通oss服务