JD hotkey官方版是一款京東APP后臺(tái)而研發(fā)的熱數(shù)據(jù)探測(cè)框架。該軟件能夠精準(zhǔn)捕捉大量爬蟲、刷子用戶,可以由客戶端決定如何使用這些熱key,JD hotkey最核心的功能就是熱數(shù)據(jù)探測(cè)并推送至集群各個(gè)服務(wù)器。
軟件簡(jiǎn)介
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)用性能。
對(duì)任意突發(fā)性的無法預(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ù)器。
應(yīng)用場(chǎng)景
JD-hotkey適用場(chǎng)景:
1、mysql熱數(shù)據(jù)本地緩存。
2、redis熱數(shù)據(jù)本地緩存。
3、黑名單用戶本地緩存。
4、爬蟲用戶限流。
5、接口、用戶維度限流。
6、單機(jī)接口、用戶維度限流限流。
7、集群用戶維度限流。
8、集群接口維度限流。