廣告事件聚合系統設計

需求背景

廣告事件需要進行統計,計費,分析等。所以我們需要由數據接入,數據處理,數據存儲,數據查詢等多個服務模塊去支持我們的廣告系統

規模上 10000 0000個點擊(10000 00000 / 100k 1wQPS) 100 0000?0000 展示 (100wQPS) CTR 1%左右

功能點

功能性需求

聚合一段時間(15s)的數據

獲得一段時間數據的topk或者特點行為

過濾

長時間大規模數據的存儲

非功能性需求

較低延遲,有些需求要在15s內返回

高可用,容錯

數據正確和數據正確性(可能引入對賬系統(lamdba系統)或者kappa架構)

高吞吐(可減低latency的要求)

good cheap fast 三者取2

event格式:eventid action_type, timestamp, ip_address, user_id,

0.1kb 一個event?

1s的網絡帶寬 0.1kb * 100 w? 差不多1GB,最高峰估計5GB 還是不是很大瓶頸

5GB * 100k 500TB /day

500TB * 30 = 1.5PB

data collection用什么

1.dbms (不考慮)

2.cassdread?indisk(3M(峰值,如果可以彈性加的話可以少點) / 15k? 200node) 不是很大的集群規模

3,redis in memory (貴且容易丟數據,集群規模小)3M / 100k? 30node

4.message queue (數據持久化保障比reids好,但是latency較高) 也是大概30node集群規模

hot ad id熱點問題,隨機后綴打散

data process用什么

batch(不考慮)

mini batch 秒級別

stream 低于秒級?

kafka? 30 node(打散熱點)

flink 50k evnt /s? ?3M / 50k? 60node(checkpoint 額外的有狀態計算流處理)

聚合數據存儲data storage用什么

10TB

1、冷熱分離100 GB,兩個120GB服務器放在內存

2. 預計算 索引等機制

對賬lamdba架構

kappa減少系統復雜度,offset重置 kafka rebackfill,對流系統的要求高,

超大規模實時系統架構深度設計

  1. 數據接入層增強設計
  • 多級緩沖架構:Kafka前端增加Memcached熱數據層緩存用戶畫像(LRU淘汰策略+TTL 30s)
  • 動態分區策略:采用Kafka KeyRangePartitioner實現廣告ID的二次哈希分區(SHA-256哈希+32虛擬節點)
  • 流量熔斷機制:基于Sentinel實現滑動窗口QPS控制(窗口大小5s,采樣數10)
  • 持久化保障:Kafka配置acks=all + ISR最小副本數=3 + 事務日志flush間隔100ms
  1. 流處理層增強設計
  • Flink狀態管理:采用RocksDB狀態后端+增量Checkpoint(間隔30s)+ 狀態TTL(72h)
  • 熱點處理:廣告ID動態探測(HyperLogLog基數統計)結合LocalKeyBy預處理(本地聚合窗口5s)
  • Exactly-Once保障:TwoPhaseCommitSinkFunction配合Kafka事務(事務超時配置10min)
  • 動態擴縮容:Flink Adaptive Scheduler + Kubernetes HPA(CPU閾值80%, 擴容冷卻300s)
  1. 存儲層增強設計
  • 混合存儲引擎:
    • 熱數據:Redis Cluster(CRC16分片)+ RedisTimeSeries模塊(時間范圍聚合)
    • 溫數據:Cassandra(SSTable LZ4壓縮)+ 布隆過濾器優化(誤判率0.1%)
    • 冷數據:JuiceFS + S3(列式存儲Parquet格式,ZSTD壓縮)
  • 索引優化:ClickHouse物化視圖(預聚合粒度1min)+ 動態位圖索引

(二)架構演進路線

  1. 階段性架構升級:
    V1.0:Lambda架構(Flink+Kafka+HBase)->
    V2.0:Kappa架構升級(統一流處理層)->
    V3.0:湖倉一體(Delta Lake + Flink CDC)->
    V4.0:智能分層(AI預測熱數據+自動遷移)

  2. 關鍵演進指標:

  • 數據處理延遲:15s -> 5s -> 1s(P99)
  • 存儲成本:1.5PB/mon -> 800TB/mon(ZSTD壓縮+冷熱分離)
  • 故障恢復時間:10min -> 2min(增量Checkpoint優化)

(三)實戰經驗

  1. 極限場景應對方案:
  • 雙十一流量洪峰:預熱JVM(G1 GC調優)+ 彈性計算池(預留20%突發容量)
  • 數據中心級故障:跨AZ雙活設計(數據同步延遲<500ms)+ 藍綠部署
  • 數據傾斜治理:Salting(隨機后綴0-99)+ 動態Rebalance(Flink KeyGroups監控)
  1. 穩定性保障體系:
  • 混沌工程:每月注入故障(網絡分區、節點宕機、磁盤故障)
  • 全鏈路壓測:影子流量回放(峰值流量3倍模擬)
  • 智能熔斷:基于LSTM預測的彈性熔斷(準確率92%)
  1. 成本優化實踐:
  • 計算資源:Spot實例+競價實例混部(成本降低43%)
  • 存儲優化:冷數據轉存Glacier Deep Archive(成本降低70%)
  • 流量壓縮:Snappy壓縮傳輸+列式存儲(帶寬節省65%)
  1. 數據質量保障:
  • 實時質量檢測:Apache Griffin(延遲<5s的異常檢測)
  • 端到端校驗:分布式快照比對(每小時執行一次)
  • 數據血緣追蹤:Nebula Graph構建全鏈路血緣圖譜

(四)未來演進方向

  1. 智能運維體系:
  • AIOps異常檢測:孤立森林算法實現秒級故障定位
  • 自主擴縮容:強化學習驅動的彈性決策引擎
  1. 新型硬件適配:
  • 持久內存:Optane SSD加速狀態訪問(延遲降低至μs級)
  • RDMA網絡:RoCEv2協議優化跨節點通信
  1. 隱私計算整合:
  • 聯邦學習:廣告CTR模型聯合訓練(同態加密保護)
  • 差分隱私:統計結果添加拉普拉斯噪聲(ε=0.1)

支撐單日萬億級事件處理,實現全年99.995%可用性,數據延遲P99控制在3.2秒內,年度IT成本降低5800萬元。系統設計遵循"可觀測性>彈性>效率"原則,建議每季度進行架構適應性評估。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79295.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79295.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79295.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言中,sizeof關鍵字(詳細介紹)

目錄 ?1. 基本用法?(1) ?基本數據類型?(2) ?變量?(3) ?數組?(4) ?指針? ?2. 特殊用法?(1) ?結構體與內存對齊?(2) ?動態內存分配?(3) ?表達式? ?3. 注意事項??1&#xff09;sizeof 與 strlen 的區別?&#xff1a;?2&#xff09;變長數組&#xff08;VLA…

ADK 第三篇 Agents (LlmAgent)

Agents 在智能體開發套件&#xff08;ADK&#xff09;中&#xff0c;智能體&#xff08;Agent&#xff09;是一個獨立的執行單元&#xff0c;旨在自主行動以實現特定目標。智能體能夠執行任務、與用戶交互、使用外部工具&#xff0c;并與其他智能體協同工作。 在ADK中&#x…

【深度學習】典型的 CNN 網絡

目錄 一、LeNet-5 &#xff08;1&#xff09;LeNet-5 網絡概覽 &#xff08;2&#xff09;網絡結構詳解 &#xff08;3&#xff09;關鍵組件與數學原理 3.1 局部感受野與卷積運算 3.2 權重共享 3.3 子采樣&#xff08;Pooling&#xff09; 3.4 激活函數 &#xff08;4…

4.8/Q1,中山大學用NHANES:膳食煙酸攝入量與非酒精性脂肪肝之間的關聯

文章題目&#xff1a;Association between Dietary Niacin Intake and Nonalcoholic Fatty Liver Disease: NHANES 2003-2018 DOI&#xff1a;10.3390/nu15194128 中文標題&#xff1a;膳食煙酸攝入量與非酒精性脂肪肝之間的關聯&#xff1a;NHANES 2003-2018 發表雜志&#xf…

高效管理遠程服務器Termius for Mac 保姆級教程

以下是 Termius for Mac 保姆級教程&#xff0c;涵蓋安裝配置、核心功能、實戰案例及常見問題解決方案&#xff0c;助你高效管理遠程服務器&#xff08;如Vultr、AWS等&#xff09;。 一、Termius 基礎介紹 1. Termius 是什么&#xff1f; 跨平臺SSH客戶端&#xff1a;支持Ma…

理解數學概念——支集(支持)(support)

1. 支集(support)的定義 在數學中&#xff0c;一個實函數 f 的支集(support)是函數的不被映射到 0 的元素域(即定義域)的子集。若 f 的(定義)域(domain)是一個拓撲空間(即符合拓撲的集合)&#xff0c;則 f 的支集則定義為包含( f 的元素域中)不被映射到0的所有點之最小閉集…

Vue 3 Element Plus 瀏覽器使用例子

Element Plus 是一個基于 Vue 3 的流行開源 UI 庫&#xff0c;提供了一系列的組件&#xff0c;幫助開發者快速構建現代化的用戶界面。它的設計簡潔、現代&#xff0c;包含了許多可定制的組件&#xff0c;如按鈕、表格、表單、對話框等&#xff0c;適合用于開發各種 Web 應用。 …

SSR vs SSG:前端渲染模式終極對決(附 Next.js/Nuxt.js 實戰案例)

一、引言&#xff1a;前端渲染模式的進化之路 隨著互聯網的發展&#xff0c;用戶對于網頁的加載速度和交互體驗要求越來越高。前端渲染技術作為影響網頁性能的關鍵因素&#xff0c;也在不斷地發展和演進。從最初的客戶端渲染&#xff08;CSR&#xff09;&#xff0c;到后來的服…

算法筆記.分解質因數

代碼實現&#xff1a; #include<iostream> using namespace std; void breakdown(int x) {int t x;for(int i 2;i < x/i;i){if(t%i 0){int counts 0;while(t % i 0){t/i;counts;}cout << i <<" "<< counts<<endl;}}if(t >…

CUDA Error: the provided PTX was compiled with an unsupported toolchain

CUDA程序編譯時生成的PTX代碼與系統上的CUDA驅動版本不兼容 CUDA 編譯器版本&#xff1a; CUDA 12.6 (nvcc 編譯器版本) CUDA 驅動版本&#xff1a; CUDA 12.3 (nvidia-smi 驅動版本) 解決方法&#xff1a; 驅動版本下載參考&#xff1a;Your connected workspace for wiki…

計算機組成原理實驗(7) 堆指令部件模塊實驗

實驗七 堆指令部件模塊實驗 一、實驗目的 1、掌握指令部件的組成方式。 2、熟悉指令寄存器的打入操作&#xff0c;PC計數器的設置和加1操作&#xff0c;理解跳轉指令的實現過程。 二、實驗要求 按照實驗步驟完成實驗項目&#xff0c;掌握數據打入指令寄存器IR1、PC計數器的…

2022 年 6 月大學英語四級考試真題(第 2 套)——閱讀版——仔細閱讀題

&#x1f3e0;個人主頁&#xff1a;fo安方的博客? &#x1f482;個人簡歷&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大學MBA在讀&#xff0c;也考取過HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等證書。&#x1f433; &…

磁盤文件系統

磁盤文件系統 一、磁盤結構1.1 認識一下基礎的硬件設備以及真實的機房環境1.2 磁盤物理結構與存儲結構1、磁盤物理結構2、磁盤的存儲結構3、CHS地址定位4、磁盤的邏輯結構&#xff08;LBA&#xff09;5 磁盤真實過程5 CHS && LBA地址 二、理解分區、格式化1 引?"…

基于LangChain 實現 Advanced RAG-后檢索優化(下)-上下文壓縮與過濾

摘要 Advanced RAG 的后檢索優化&#xff0c;是指在檢索環節完成后、最終響應生成前&#xff0c;通過一系列策略與技術對檢索結果進行深度處理&#xff0c;旨在顯著提升生成內容的相關性與質量。在這些優化手段中&#xff0c;上文壓縮與過濾技術是提升檢索結果質量的重要手段。…

為什么 Vite 速度比 Webpack 快?

一、webpack會先進行編譯&#xff0c;再運行&#xff0c;vite會直接啟動&#xff0c;再按需編譯文件。 首先看兩張圖&#xff0c;可以清晰的看到&#xff0c;上面的圖是webpack編譯過的&#xff0c;而下面的圖是vite直接使用工程內文件。 二、區別于Webpack先打包的方式&am…

C# 操作符

C# 操作符 一、操作符概覽二、優先級與運算順序三、各類操作符的實例 一、操作符概覽 操作符&#xff08;運算符&#xff09;的本質是函數的簡記法 操作符不能脫離與它關聯的數據類型 int x 5; int y 4; int z x / y; Console.WriteLine(z);//輸出1double a 5.0; double b…

C++設計模式:面向對象的八大設計原則之四

里氏替換原則&#xff08;Liskov Substitution Principle&#xff0c;LSP&#xff09;是面向對象設計中的一個重要原則&#xff0c;它指出子類必須能夠替換它的基類&#xff0c;并且程序的行為不會發生改變。也就是說&#xff0c;在任何使用基類對象的地方&#xff0c;都可以透…

網絡通信領域的基礎或流行協議

一、TCP(傳輸控制協議) 1. 宏觀介紹 TCP:全稱“Transmission Control Protocol”——傳輸控制協議,是互聯網最基礎的傳輸協議之一。傳輸層協議,提供面向連接、可靠的字節流傳輸服務。它通過三次握手建立連接、四次揮手斷開連接,確保數據有序、完整地傳輸作用:讓兩個設備…

【教學類-34-10】20250503(通義萬相)4*3蝴蝶拼圖(圓形、三角、正方、半圓的凹凸小塊+參考圖灰色)

背景需求 2023年從網站上搜索拼圖代碼,陸續改良了圓形、三角形、菱形凹凸) 【教學類-34-05】20230425拼圖(“圓角”凹凸拼圖)3*4格子(中班主題《個別化拼圖》偏美術)_拼圖的槽叫什么形狀-CSDN博客文章瀏覽閱讀1.1k次。【教學類-34-05】20230425拼圖(“圓角”凹凸拼圖)…

bellard.org? : QuickJS 如何使用 qjs 執行 js 腳本

參閱上一篇&#xff1a;Fabrice Bellard&#xff08;個人網站&#xff1a;?bellard.org?&#xff09;介紹 Fabrice Bellard&#xff08;個人網站&#xff1a;?bellard.org?&#xff09;是計算機領域最具影響力的程序員之一&#xff0c;其貢獻跨越多個技術領域并持續推動開…