天天看點

阿裡巴巴數字化營運能力

1、鷹眼平台的架構

首先在每個應用叢集的運作環境中,每當應用中進行了遠端服務調用、緩存、資料庫通路等操作時,都會生成相關的通路日志并儲存到應用所在的伺服器上。

因為這些本地日志資訊僅僅是一次業務請求進行中的部分日志資訊,必須要将這些日志資訊彙聚到一個地方才能進行全局的統計和檢視,是以在每個運作應用所在的伺服器上均有一個代理程式,專門負責實時地将生成的日志檔案(增量)發送到鷹眼的處理叢集上。

鷹眼平台是阿裡巴巴中間件團隊自主研發的 JStorm流式計算引擎,對應用叢集接收到的日志 進行内容的解析拆分,按照不同業務場景的需求 将拆分後的資料儲存到不同的存儲系統中。對于需要對日志資訊進行實時業務統計的需求,會将日志資訊儲存到HBase中,對接收到的日志資訊 進行實時的彙總計算,最後給鷹眼伺服器提供實時業務統計資料,比如某一服務實時的QPS值、 交易金額的實時變化等場景。如果對于日志資訊要進行批量的統計和分析,則會利用Hadoop分布式檔案系統 (HDFS)提供這類業務場景下對日志資料的計算和分析。

2、埋點和輸出日志

在每一個URL請求都會生成一個 全局唯一的ID,鷹眼平台中稱為TraceID,這個ID 會出現在該請求中所有服務調用、資料庫、緩 存、消息服務通路時生成的所有日志中。阿裡巴巴采用了方式,将實作服務調用、各種資源的通路所需要生成服 務鍊路日志,以及TraceID傳遞等功能的代碼(稱 為埋點)植入到了服務架構層和各資源的通路驅 動層,也就是在中間件層面上統一實作了鷹眼的 上下文建立以及日志埋點功能,讓調用上下文在 中間件的網絡請求中傳遞,同時将調用上下文信 息儲存在了本地ThreadLocal中,進而實作了鷹眼 平台所需的調用上下文和日志資訊對于應用開發 人員完全透明。

關于TraceID的生成規則,可以 根據業務的需要在TraceID中包含一定的業務信 息,比如前端應用的IP位址,這樣可以通過該信 息快速定位到生成此次請求的前端應用;比如創 建時間,友善後期将修改日志資訊按照時間次元 進行分區存儲。在淘寶的環境中,TraceID一般會 包含以下資訊:

·IP位址:在淘寶環境可直接映射到前端應 用。

·建立時間:在存儲時用于分區。·順序數:用于鍊路采樣。

除了TraceID負責将URL請求中所有的服務調 用和資源通路關系串聯在了一起,還有另外一個 ID在分布式服務調用過程中也起到非常重要的作 用,這個ID就是RCPID,用于辨別日志埋點順序 和服務調用間的嵌套關系。

3、海量日志分布式處理平台

利用了阿裡 巴巴中間件團隊開發的海量日志分布式處理平台 TLog。

TLog可以根據使用者定制的處理流程,持續不 斷地對目标機器生成的日志資料進行解析、計 算、入庫等操作,對日志的處理流程提供了“所 見即所得”的可視化配置界面,具備零業務侵 入、高性能、實時性強等特點。

要接入TLog平台,隻需完成三步操作配置: 日志采集設定、日志資料處理流程自定義、API 方式資料擷取,就能通過分布式日志處理的方式 實作所需要監控的技術或業務名額資訊。使用者隻需設定好日志收集的目标應用、機器 IP、日志路徑等資訊并儲存後,就完成了采集點的配置工作。

***********************************************************************

【如果文字看累了,可b站搜尋“沙皮狗2021”,用聽的方式領略知識的魅力】

傳送門 :https://space.bilibili.com/407643589

【微信公衆号】:沙皮狗2021