GoldenDB分佈式數據庫全鏈路跟蹤分析平臺
(原標題:GoldenDB分佈式數據庫全鏈路跟蹤分析平臺)
金融科技移動化、互聯網化帶來數據爆炸式增長,分佈式數據庫日益廣泛應用於千行百業。同時由於分佈式數據庫自身特點,也給傳統運維帶來了挑戰:
首先,分佈式數據庫系統自身更加複雜。較傳統單機數據庫系統,分佈式數據庫規模更龐大,結構更加豐富,節點較多,數據更加分散。同時,數據規模更加海量龐大。
其次,問題故障精準定位、快速解決更加困難。業務經過分佈式數據庫內部處理流程更加複雜,業務經過網絡、負載均衡器、計算節點、全局事務管理節點、數據節點等環節。
針對海量大數據處理,包括日誌、告警、性能、狀態等方面,爲了提升精準定位,快速解決故障的能力,需要藉助於大數據、人工智能等新技術,才能擺脫傳統的依賴文檔、腳本、手工時代。
一、GoldenDB提供全鏈路跟蹤分析能力
GoldenDB是一款高性能、高可靠、高擴展、高兼容、金融級分佈式數據庫。GoldenDB產品推出了引入大數據技術的智能運維平臺Insight,提供海量大數據高效處理功能,支持端到端全鏈路跟蹤分析能力。其架構請參見圖1。
圖1 GoldenDB全鏈路跟蹤分析平臺架構
監控數據流路徑:計算、數據、GTM等節點上產生的日誌、性能等數據經過代理採集上報到大數據平臺,最終在Web界面上展示。
計算節點CN負責接收應用發送過來的業務語句,對業務語句做語法解析,優化等;數據節點DN用於存儲業務數據以及執行分佈式子事務;GTM提供全局事務管理,負責全局事務ID的生命週期管理。
二、分佈式數據庫層面的全鏈路跟蹤流程
傳統依靠人工登錄各節點抓取各類日誌分析方式定位問題,存在大量數據解析、安全隱患、效率低等弊端。而全鏈路跟蹤工具提供事務、SQL從客戶端到CN、DN各節點全流程監視能力。以下以insert流程爲例進行原理說明,請參考圖2:
1) 客戶端發起事務請求(如insert操作)流程:設置業務流水號。目的是爲了將業務與數據庫關聯起來,方便快速定位業務語句問題。
2)CN解析客戶端請求語句。如果業務未set流水號,則生成流水號:CNID+會話ID+時間戳。
3)CN向GTM申請全局事務ID(create gtid 請求)。CN從GTM接收到申請全局事務ID響應。
4) 事務分析、處理、提交;GTID釋放等。
5) 反饋給客戶端響應:CN判斷GTM釋放GTID成功,給客戶端回覆執行成功結果。如果GTM釋放gtid失敗,給客戶端回覆執行失敗結果。
6)在以上各節點、各流程過程中,同時生成相關日誌、性能統計數據。
7)大數據平臺採集各節點上日誌、性能數據,並且進行分析、清洗、轉換、入庫。
8)insight web界面進行展示、分析。
圖2全鏈路跟蹤原理流程
全鏈路跟蹤可以根據節點類型、集羣號、事務流水號、原始SQL關鍵字、事務執行的開始與結束時間等進行快速定位事務、SQL執行情況。提供各節點相關日誌記錄功能:以事務爲單位進行統計輸出,統計信息包括:客戶端信息(IP,PORT),事務流水號,事務開始及結束時間,事務內各SQL語句信息,以及每個SQL語句對應的下到每個分片上的子SQL語句信息等。爲運維人員、DBA提供可視化、端到端的故障問題快速定位新助手。全鏈路跟蹤主要界面請參見圖3。
圖3全鏈路跟蹤主要功能界面
目前通過端到端全鏈路跟蹤分析平臺應用看來,有顯著的成效。
提供了大數據、可視化運維平臺。降低了運維人員技術門檻,降低運維時間與人力成本。
全鏈路跟蹤一鍵操作,提升了問題故障精準分析、快速解決的能力。
當然,全鏈路跟蹤目前還只是初步應用階段,後續還會在實踐中不斷代迭代、優化、提升。不斷提升GoldenDB產品的簡單易用水平,提升運維能力,提升用戶體驗。