淺談日誌中臺不重不丟的實現

導讀:日誌數據的生命週期包含日誌採集、接入、傳輸、應用等各個環節。數據的穩定性對於公司報表建設、決策分析、轉化策略效果都有至關重要的影響。全文旨在介紹百度日誌中臺當前的現狀,公司內部應用推廣情況。尤其在數據準確性的建設上,進行深入的探討。數據產生到最終業務應用中各個環節的穩定性建設,包括:數據上報時效性優化、接入持久化的思考、數據流式計算過程中的不重不丟建設等。

一 簡述

1.1 中臺定位

日誌中臺是針對打點數據的一站式服務,實現打點數據的全生命週期管理,只需簡單開發就能快捷完成日誌數據採集、傳輸、管理以及查詢分析等功能,適用於產品運營分析、研發性能分析、運維管理等業務場景,幫助 APP 端、服務端等客戶探索數據、挖掘價值、預見未來。

1.2 接入情況

日誌中臺已覆蓋了廠內大多數重點產品,其中包括:百度 APP 全打點、小程序、矩陣 APP 等,接入方面收益如下:

1.3 名詞解釋

客戶端:指用戶可以直接使用的軟件系統,通常部署在用戶手機或 PC 等終端設備上。例如百度 APP、小程序等。

服務端: 用於響應客戶端發起的網絡請求的服務,通常部署在雲服務器上。

日誌中臺: 此處特指端日誌中臺,包括端日誌全生命週期的能力建設。包括打點 SDK / 打點 server/ 日誌管理平臺等核心組件。

打點 SDK: 負責打點日誌的採集、封裝、上報等功能。根據不同的日誌生產端,分爲 APP 端 SDK、H5 端 SDK,根據場景區分爲通用點位 SDK、性能 SDK、小程序 SDK 等,用戶根據需求可以集成不同的 SDK。

打點 server: 日誌接收服務端,是日誌中臺服務端最核心的模塊。

特徵 / 模型服務: 日誌中臺將需要進行策略模型計算的點位信息實時轉發給下游 <策略推薦中臺>。特徵 / 模型服務是<策略推薦中臺> 的入口模塊。 

1.4 服務全景圖

日誌服務主要包括基礎層、管理平臺、業務數據應用、產品支撐幾個層面。圍繞着各個層級,在 2021.6 月,制定 & 發佈了百度客戶端日誌上報規範。

二、日誌中臺核心目標

如前文介紹,日誌中臺承載着百度內所有 APP 日誌打點、站在數據生產的最前沿,在保證功能覆蓋全、接入快速 & 靈活的基礎上,面臨的最重要核心挑戰是數據的準確性。整個數據從產出、日誌中臺接入處理、下游應用,一切數據質量問題需要日誌中臺承載。而數據的準確性可以拆解爲 2 部分:

而做到系統層面的近乎 100% 的不重不丟,需要面臨較多的難題。

2.1 日誌中臺架構

接入日誌中臺打點數據從端上生產至在線服務到最終(實時 / 離線)轉發至下游,需要經過如下幾個環節:

2.2 面臨的問題

從上面日誌中臺架構來看,存在如下問題:

三、不重不丟實現

3.1 數據不丟的理論基礎

3.1.1 唯 2 丟失數據理論

3.1.2 日誌中臺架構優化方向

數據接入層面:

下游轉發層面:

3.2 架構拆解

基於日誌中臺現狀分析,結合日誌打點服務的唯 2 理論,我們針對日誌中臺對現有架構進行問題拆解和架構重構。

3.2.1 打點 server 服務拆解(優化接入層數據丟失)

基於以上不重不丟的理論,日誌接入層進行了如下幾個方面的建設,儘可能做到數據不重不丟。

3.2.1.1 日誌優先持久化

日誌中臺現有的扇出數據,需要優先進行持久化,這是日誌接入層基本要求。而實時流方面,在保證業務數據轉發分鐘級延遲的情況下,要做到數據 “儘可能不丟”。

  1. 持久化:接入層在真正業務處理之前,優先將數據持久化處理,“儘可能” 先保證數據不丟失。

  2. 實時流:避免直接對接消息隊列,優先採用落盤 + minos 轉發消息隊列方式,保證數據至多分鐘級延遲的情況下,儘量不丟。

3.2.1.2 巨型服務拆解 & 功能下沉

爲降低日誌服務過多的功能迭代帶來的穩定性風險,同時需要滿足下游業務靈活訂閱的需求,需要保證日誌中臺扇出的合理性。我們將在線服務進一步拆解:

因此,將日誌服務進一步拆解,如下圖所示:

3.2.1.3 流式計算思考

爲了保證嚴格數據流穩定性,需要依賴流式計算架構,在解決數據在業務計算過程中完全的不重不丟同時,滿足業務不同場景獲取數據的訴求。針對日誌中臺特點,我們對流式計算處理架構進入如下設計:

3.2.2 打點 SDK 數據上報優化(解決端上報數據丟失)

客戶端打點,因端所處的環境問題,會存在一定的數據丟失風險。尤其當打點調用併發較高時候,數據不可能第一時間全部發送到服務端。因此,客戶端需要將業務打點數據暫存本地的數據庫,然後異步進行消息發送至服務端,以達到異步發送、優先本地持久化不丟的保證。但是,APP 可以在任何情況下退出、卸載,那數據在本地停留越久,對業務數據價值越小,更容易丟失,所以我們需要針對數據上報進行如下方向的優化:

通過客戶端發送邏輯不斷優化,在時效性上也取得了巨大收益。收斂率雙端提升 2%+。

四、展望

前文介紹了日誌中臺服務在打點數據準確性保障方面,做的一些努力。當然,後面我們還會繼續深挖系統的風險點,如:

希望,日誌中臺持續不斷優化,爲業務準確使用打點數據做出貢獻。

作者:振興

來源:百度 Geek 說

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/oa7Y93D6ippLDwWawV16UQ