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

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

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

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

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集群规模成本低太多。

界面效果

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

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14199.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东jd商品详情API接口(item_get-根据ID取商品详情)代码封装

item_get-根据ID取商品详情接口 通过代码封装该接口可以拿到商品标题,商品价格,商品促销信息,商品优惠价,商品库存,sku属性,商品图片,desc图片,desc描述,sku图片&#xf…

京东 API 接口,item_get_app-获得JD商品详情原数据

京东获得JD商品详情原数据 API 返回值说明 item_get_app-获得JD商品详情原数据 公共参数 请求地址: https://console.open.onebound.cn/console/?iAnzexi 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_…

【京东API】京东app获得JD商品详情原数据接口

京东是中国最大的综合型电商网站之一,其app端是用户购买商品的主要途径之一。为了更好地满足用户的需求,开发人员提供了商品原数据接口,让第三方开发者可以获取京东商品的详细信息。 开发背景: 随着移动设备用户数量的不断增加&a…

京东旗舰店商品详情API接口(item_get-获得JD商品详情)

京东获得JD商品详情 API 返回值说明 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中) 注册Key和secret接入secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_ge…

【chatGPT】ChatgGPT生成Excel统计公式

参考视频:https://edu.csdn.net/learn/38346/613667 1.问:生成一个xls文件,其中一列是随机生成的邮箱 运行以上代码,将生成一个名为"random_emails.xls"的Excel文件,其中包含一列随机生成的邮箱地址。你可…

Android应用启动白屏问题解决办法

目录 Android应用启动白屏问题解决办法白屏问题的由来解决方案文末有言 Android应用启动白屏问题解决办法 白屏问题是应用启动过程中普遍存在的问题。 本文将介绍白屏问题的由来以及一种作者认为是市场上比较普遍的解决办法。 白屏问题的由来 我们已知当系统启动并启动App时…

Android 启动白屏解决方案

方案一: 方案二: 方案二变种: 1.先让APP的启动背景变成另一张不是白色的图片 2.再在activity启动的时候把那张设置的非白色的图片设置为白色 方案三: 配置splash_preview.xml splash_preview.xml的显示效果 显示splash下…

QWebEngineView显示网页白屏

由于做项目时要用到Qt来调用百度的地图服务,但测试的时候一直白屏。 解决办法:经测试,仅在Qt 5.15.2 Release下正常运行,而在 Debug 模式下会报错,但强制运行仍有用。 套件选择: 成功: Debug…

微信登录,分享,支付,等的白屏闪屏等问题

首先以微信的第三方登录为例: 微信登录官方文档地址:点击进入 一、准备工作 在进行微信登录之前,首先要在微信开放平台注册开发者账号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请…

Android 调用微信登陆、支付、分享,出现的白屏、黑屏、闪屏问题。

当我在去调用微信的登录界面,或者其他支付界面, WXEntryActivity又一个界面,这样看起来很不协调 (WXEntryActivity类finish的时候会有闪屏的效果)。 为了让用户感觉只是拉起了一个授权界面,需要加上 and…

点击任务栏,没反应,并可能出现白屏的情况

1、右键点击任务栏 如果右键也点不动的话,可以重启一下,直到右键能点击成功。 2、点击咨询和兴趣 点击关闭 4、

如何应用chatgpt优雅的作诗

如上图所示,输入给chatgpt,让他帮忙作诗一首: 经过很多次暗示,chatgpt做出来的诗基本上就如图所示了,后面再去测试就是浪费时间了。 如下,自己修改后的诗词为: 静秋念 孤椅余温枫叶伴&#xff0…

波士顿房价数据集.csv

在自己学习python数据分析的时候碰到的第一个例子就用到了‘Boston房价数据集’,自己花费好久才找到。CSDN网站下载需要会员,可这个数据集本来就是共享的,我便把我的结果以简易的方式共享出来,希望能帮助大家,如果有帮…

波士顿房价数据集可视化

波士顿房价数据集 卡内基梅隆大学,StatLib库,1978年涵盖了麻省波士顿的506个不同郊区的房屋数据404条训练数据集,102条测试数据集每条数据14个字段,包含13个属性,和1个房价的平均值 目标 将所有属性与房价之间的关系…

房价预测Python

房价预测包括以下几个部分:导入数据、数据的预处理、求梯度 题目要求: 1.影响房价的因素:面积、房间数 2.利用梯度下降法,求出预测函数tx1*w1x2*w2b 这个是我写的代码,我对于这个题的理解不是很深,代码…

Python房价分析和可视化<房天下二手房>

Python房价分析和可视化<房天下二手房> 本文是Python数据分析实战的房价分析系列,本文分析二线城市贵阳的二手房。 数据获取 本文的数据来源于2022年8月房天下的二手房数据。对数据获取不感兴趣可以跳过此部分看分析和可视化。 1.访问目标页…

波士顿房价数据集——预测房价

文章目录 1.数据集及问题简介2.加载数据集并探索数据3.准备输入的数据4.构建网络并编译网络6.从训练集中留出验证集(K折验证法),初步训练模型7.根据训练数据,重新训练模型并测试8.画出训练数据9.调参完成后,在所有训练…

Boston波士顿房价数据下载

下载地址:https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data 打开方式: 直接用excel可以打开,转存为csv等 模型训练 from sklearn.linear_model import Lasso from sklearn.preprocessing import Standard…

利用波士顿房价数据集实现房价预测

文章目录 一、 观察波士顿房价数据并加载数据集1、加载数据集 二、 特征选择三、 模型选择四、 模型训练和测试1、 训练模型2、打印线性方程参数3、模型预测4、 计算mae、mse5、 画出学习曲线 五、 模型性能评估和优化1、 模型优化,考虑用二项式和三项式优化2、 划分…

预测房价(Python)

构建神经网络/深度学习模型的基本步骤 深度学习模型具有一定的通用性,使得深度学习的门槛降低,这是深度学习得以重新占据计算机领域一席之地的重要原因,深度学习均可以从下述五个步骤来完成模型的构建和训练。 def load_data():# 从文件导入…