JD-hotkey 是京東 APP 后臺(tái)熱數(shù)據(jù)探測(cè)框架,歷經(jīng)多次高壓壓測(cè)和 2020 年京東 618 大促考驗(yàn)。
在上線運(yùn)行的這段時(shí)間內(nèi),每天探測(cè)的key數(shù)量數(shù)十億計(jì),精準(zhǔn)捕獲了大量爬蟲、刷子用戶,另準(zhǔn)確探測(cè)大量熱門商品并毫秒級(jí)推送到各個(gè)服務(wù)端內(nèi)存,大幅降低了熱數(shù)據(jù)對(duì)數(shù)據(jù)層的查詢壓力,提升了應(yīng)用性能。
該框架歷經(jīng)多次壓測(cè),性能指標(biāo)主要有兩個(gè)
1 探測(cè)性能:
8核單機(jī)worker端每秒可接收處理16萬(wàn)個(gè)key探測(cè)任務(wù),16核單機(jī)至少每秒平穩(wěn)處理30萬(wàn)以上,實(shí)際壓測(cè)達(dá)到37萬(wàn),CPU平穩(wěn)支撐,框架無(wú)異常。
2 推送性能:
在高并發(fā)寫入的同時(shí),對(duì)外推送目前性能約平穩(wěn)推送每秒10-12萬(wàn)次,譬如有1千臺(tái)server,一臺(tái)worker上每秒產(chǎn)生了100個(gè)熱key,那么這1秒會(huì)平穩(wěn)推送100 * 1000 = 10萬(wàn)次,10萬(wàn)次推送會(huì)明確在1s內(nèi)全部送達(dá)。如果是寫入少,推送多,以純推送來(lái)計(jì)數(shù)的話,該框架每秒可穩(wěn)定對(duì)外推送40-60萬(wàn)次平穩(wěn),80萬(wàn)次極限可撐幾秒。
每秒單機(jī)吞吐量(寫入+對(duì)外推送)目前在70萬(wàn)左右穩(wěn)定。
在真實(shí)業(yè)務(wù)場(chǎng)景中,可用1:1000的比例,即1臺(tái)worker支撐1000臺(tái)業(yè)務(wù)服務(wù)端的key探測(cè)任務(wù),即可帶來(lái)極大的數(shù)據(jù)存儲(chǔ)資源節(jié)?。ㄈ鐚?duì)redis集群的擴(kuò)充)。
基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能
項(xiàng)目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
視頻教程:https://doc.iocoder.cn/video/
介紹
對(duì)任意突發(fā)性的無(wú)法預(yù)先感知的熱點(diǎn)請(qǐng)求,包括并不限于熱點(diǎn)數(shù)據(jù)(如突發(fā)大量請(qǐng)求同一個(gè)商品)、熱用戶(如爬蟲、刷子)、熱接口(突發(fā)海量請(qǐng)求同一個(gè)接口)等,進(jìn)行毫秒級(jí)精準(zhǔn)探測(cè)到。
然后對(duì)這些熱數(shù)據(jù)、熱用戶等,推送到該應(yīng)用部署的所有機(jī)器JVM內(nèi)存中,以大幅減輕對(duì)后端數(shù)據(jù)存儲(chǔ)層的沖擊,并可以由客戶端決定如何使用這些熱key(譬如對(duì)熱商品做本地緩存、對(duì)熱用戶進(jìn)行拒絕訪問、對(duì)熱接口進(jìn)行熔斷或返回默認(rèn)值)。這些熱key在整個(gè)應(yīng)用集群內(nèi)保持一致性。
核心功能:
熱數(shù)據(jù)探測(cè)并推送至集群各個(gè)服務(wù)器。
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能
項(xiàng)目地址:https://gitee.com/zhijiantianya/yudao-cloud
視頻教程:https://doc.iocoder.cn/video/
適用場(chǎng)景
mysql熱數(shù)據(jù)本地緩存
redis熱數(shù)據(jù)本地緩存
黑名單用戶本地緩存
爬蟲用戶限流
接口、用戶維度限流
單機(jī)接口、用戶維度限流限流
集群用戶維度限流
集群接口維度限流
worker 端強(qiáng)悍的性能表現(xiàn)
每10秒打印一行,totalDealCount代表處理過的key總量,可以看到每10秒處理量在270萬(wàn)-310萬(wàn)之間,對(duì)應(yīng)每秒30萬(wàn)左右QPS。
僅需要很少的機(jī)器,即可完成海量key的實(shí)時(shí)探測(cè)計(jì)算推送任務(wù)。比擴(kuò)容redis集群規(guī)模成本低太多。
界面效果
審核編輯 :李倩
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7255瀏覽量
91818 -
框架
+關(guān)注
關(guān)注
0文章
404瀏覽量
17888 -
京東
+關(guān)注
關(guān)注
2文章
1023瀏覽量
49269
原文標(biāo)題:牛逼哄哄的 JD-hotkey !
文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何利用京東商品詳情id拿到商品的詳細(xì)信息 示例展示
【HarmonyOS next】ArkUI-X新聞熱搜聚合App【進(jìn)階】
APP自動(dòng)化測(cè)試框架

京東中臺(tái)化底層支撐框架技術(shù)分析及隨想

VirtualLab Fusion應(yīng)用:熱透鏡引起焦點(diǎn)偏移的研究
京東App上線國(guó)內(nèi)打車服務(wù),目前為第三方接入
京東金融APP的鴻蒙之旅系列專題 鴻蒙工程化:Hvigor構(gòu)建技術(shù)

京東金融APP的鴻蒙之旅系列專題 新特性篇:意圖框架接入

評(píng)論