天天看點

牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大

作者:憶笑笙箫IT數位

牛逼哄哄的 JD-hotkey !

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

采用protobuf序列化後性能進一步得到提升。在秒級36萬以上時,能穩定在CPU 60%,壓測持續時長超過5小時,未見任何異常。30萬時,壓測時長超過數日,未見任何異常。

界面效果
#一人一個iPhone使用技巧# #蘋果系統更新# #一起聊數位##數位達人成長計劃##iOS16##蘋果系統更新##iphone14# #iphone# #蘋果# #系統更新##iOS16##數位# #科技數位秀# #數位新鮮事# #數位科技秀##頭條數位潛力作者集訓營# #iPhone 13# #宅家裡搞數位##靈動島# #iPhone##IPhone# #雙十一# #開箱# #iPhone14# #iPhone14 Pro劉海變“靈動島”# #靈動島##iPhone14Pro##iPhone15或采用USB-C接口##iPhone15##iPhone 13##處理器# #骁龍超高清影像##雙十一#

牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大
牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大
牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大
牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大
牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大
牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大
牛逼哄哄的JD-hotkey!JD-hotkey是京東APP背景熱資料探測架構,曆經多次高壓壓測和2020年京東618大

繼續閱讀