當(dāng)前位置:首頁 > 公眾號(hào)精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]HotKey在618穩(wěn)定版0.2版基礎(chǔ)上,引入了protobuf序列化方式,并優(yōu)化了傳輸對(duì)象。worker單機(jī)性能從618大促穩(wěn)定版的20萬QPS穩(wěn)定,30萬極限,提升至30萬穩(wěn)定,37萬極限。且cpu峰值下降了15%。該中間件目前在京東內(nèi)部10余個(gè)核心部門接入使用,服務(wù)于京東A...

HotKey在618穩(wěn)定版0.2版基礎(chǔ)上,引入了protobuf序列化方式,并優(yōu)化了傳輸對(duì)象。

worker單機(jī)性能從618大促穩(wěn)定版的20萬QPS穩(wěn)定,30萬極限,提升至30萬穩(wěn)定,37萬極限。且cpu峰值下降了15%。

該中間件目前在京東內(nèi)部10余個(gè)核心部門接入使用,服務(wù)于京東App服務(wù)端前臺(tái)、中臺(tái),數(shù)據(jù)中臺(tái)等多個(gè)核心業(yè)務(wù)線。

架構(gòu)

京東APP后臺(tái)熱數(shù)據(jù)探測框架,歷經(jīng)多次高壓壓測和2020年京東618大促考驗(yàn)。在上線運(yùn)行的這段時(shí)間內(nèi),每天探測的key數(shù)量數(shù)十億計(jì),精準(zhǔn)捕獲了大量爬蟲、刷子用戶,另準(zhǔn)確探測大量熱門商品并毫秒級(jí)推送到各個(gè)服務(wù)端內(nèi)存,大幅降低了熱數(shù)據(jù)對(duì)數(shù)據(jù)層的查詢壓力,提升了應(yīng)用性能。

該框架歷經(jīng)多次壓測,性能指標(biāo)主要有兩個(gè):

1 探測性能:8核單機(jī)worker端每秒可接收處理16萬個(gè)key探測任務(wù),16核單機(jī)至少每秒平穩(wěn)處理30萬以上,實(shí)際壓測達(dá)到37萬,CPU平穩(wěn)支撐,框架無異常。

2 推送性能:在高并發(fā)寫入的同時(shí),對(duì)外推送目前性能約平穩(wěn)推送每秒10-12萬次,譬如有1千臺(tái)server,一臺(tái)worker上每秒產(chǎn)生了100個(gè)熱key,那么這1秒會(huì)平穩(wěn)推送100 * 1000 = 10萬次,10萬次推送會(huì)明確在1s內(nèi)全部送達(dá)。如果是寫入少,推送多,以純推送來計(jì)數(shù)的話,該框架每秒可穩(wěn)定對(duì)外推送40-60萬次平穩(wěn),80萬次極限可撐幾秒。

在真實(shí)業(yè)務(wù)場景中,可用1:1000的比例,即1臺(tái)worker支撐1000臺(tái)業(yè)務(wù)服務(wù)端的key探測任務(wù),即可帶來極大的數(shù)據(jù)存儲(chǔ)資源節(jié)?。ㄈ鐚?duì)redis集群的擴(kuò)充)。

介紹

對(duì)任意突發(fā)性的無法預(yù)先感知的熱點(diǎn)請求,包括并不限于熱點(diǎn)數(shù)據(jù)(如突發(fā)大量請求同一個(gè)商品)、熱用戶(如爬蟲、刷子)、熱接口(突發(fā)海量請求同一個(gè)接口)等,進(jìn)行毫秒級(jí)精準(zhǔn)探測到。然后對(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ù)探測并推送至集群各個(gè)服務(wù)器。

適用場景:

1mysql熱數(shù)據(jù)本地緩存

2 redis熱數(shù)據(jù)本地緩存

3 黑名單用戶本地緩存

4 爬蟲用戶限流

5 接口、用戶維度限流

6 單機(jī)接口、用戶維度限流限流

7 集群用戶維度限流

8 集群接口維度限流

界面效果

image
源碼
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉