[發明專利]一種分布式跟蹤系統的實時數據分析引擎在審
| 申請號: | 202011058075.7 | 申請日: | 2020-09-30 |
| 公開(公告)號: | CN112099977A | 公開(公告)日: | 2020-12-18 |
| 發明(設計)人: | 汪燁;陳駿武;姜波 | 申請(專利權)人: | 浙江工商大學 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/50 |
| 代理公司: | 杭州浙科專利事務所(普通合伙) 33213 | 代理人: | 楊小凡 |
| 地址: | 310018 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 跟蹤 系統 實時 數據 分析 引擎 | ||
1.一種分布式跟蹤系統的實時數據分析引擎,包括數據處理模塊及與數據處理模塊連接的數據采集模塊和數據分析模塊,其特征在于所述的數據采集模塊和數據處理模塊通過數據接收模塊連接,數據接收模塊和數據處理模塊之間采用Kafka集群作為中間層,數據采集模塊包括一組數據采集節點,數據接收模塊包括一組數據接收節點,所述Kafka與數據接收模塊中的數據接收節點之間采用異步傳輸方式,使用來自Kafka集群的服務調用數據來統計特定時間間隔內每個URL訪問的響應時間,數據處理模塊采用基于時間窗口的數據預聚合,通過比較響應時間對應的字段,進行數據聚合,并將新數據添加到聚合的結果中,數據預聚合的結果存儲在Redis緩存中,提取數據匯總結果并存儲,同時刪除Redis緩存中的數據。
2.如權利要求1所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于所述Kafka中的消息被封裝到一個ProducerRecord結構中,所述ProducerRecord結構包括Topic、Parition、Key、Value和Timestramp字段,其中Topic、Parition字段用于決定消息將被存儲的位置,Key用于計算分區值,使用唯一標識符TraceId標識Key。
3.如權利要求1所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于數據采集節點與數據接收節點之間使用推/拉模式的ZeroMQ消息傳輸機制,每個數據采集節點生成的消息被推到消息傳輸隊列中,數據接收節點從消息隊列中接收消息。
4.如權利要求1所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于數據采集節點和數據接收節點之間,使用一組HAProxy負載均衡器,負載均衡器配置Keepalived增加備用負載均衡器節點的數量。
5.如權利要求1所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于多線程并發訪問時,服務器收到客戶端的打開事務狀態命令時,服務器設置一個標志用于指示事務狀態。
6.如權利要求1所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于所述數據分析模塊采用Redis緩存,直接查詢上下游節點的數據,通過使用數據字段分析數據關聯來還原微服務的調用拓撲,數據字段包括:AgentId、TraceId、SpanId、ParentSpanId、URL和Interval,采用三種Redis存儲結構來緩存數據,TraceData:{TraceId}:{SpanId}、Relationship:{TraceId}、Upstream:{TraceId}:{ParentSpanId},這三種Key中第一個單詞表示數據的含義,花括號內表示該含義對應特性的數據。
7.如權利要求1-6所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于構建多線程模型優化Redis,多線程模型包括一個主線程和一組Worker線程,主線程用于監聽一個特定的端口,Worker線程用于處理連接的讀和寫事件,為每個Worker線程設計一個緩存隊列,緩存隊列在主線程和Worker線程之間共享,在這個過程中通過文件描述符用于主線程worker線程之間的連接對應。
8.如權利要求7所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于為每個Worker線程創建一個Socket pair,以支持Worker線程和主線程之間的雙向通信。
9.如權利要求7所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于采用分段鎖讀/寫鎖定機制,允許多個線程讀,但只有一個線程同時寫,我們實現分段鎖以減少競爭:使用RedisDB數據存儲結構創建多個數據庫對象,并為每個對象實現鎖機制,在接收到用戶連接請求后,Worker線程的處理被鎖定,當Worker線程執行用戶請求時,只有在執行命令過程中被鎖定。
10.如權利要求7所述的一種分布式跟蹤系統的實時數據分析引擎,其特征在于采用基于Version的樂觀鎖機制來確保提交操作時的數據完整性,在Redis數據庫中,設置Watched_keys結構,用于存儲所有被監視的Key和對應的客戶端對象的鏈表,修改Redis數據庫中的數據結構,添加Version字段,服務器獲取客戶端的Key及其對應的Version號,從Redis數據庫中提取Key及其對應的當前Version號傳遞給服務器,同時鎖住數據庫的寫操作,通過CAS原子操作比較客戶端的版本號及數據庫中提取的當前版本號是否一致,如果是,則將當前Version號加1并保存到數據庫相應位置,否則將返回失敗,解鎖數據庫的寫操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江工商大學,未經浙江工商大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011058075.7/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:同步運輸裝置及方法
- 下一篇:一種基于企業質量管理的綜合監控系統集成





