欧美日韩国产一区二区|qovd片|小明个人发布看看|小浪货你夹真紧水又多|老头把我添高潮了A片故|99热久久精品国产一区二区|久久久春色AV

藍印花布的歷史由來


藍印花布的歷史由來

文章插圖
1、概述在分布式服務時代,服務之間的請求域調用不再是簡單的直連方式,注冊中心的出現,讓服務治理更加便利,也對服務之間的鏈路追蹤提出了更高的要求 。
分布式鏈路追蹤就是將一次分布式請求還原成調用鏈路,將一次分布式請求的調用情況集中展示,比如各個服務節點上的耗時、請求具體到達哪臺機器上、每個服務節點的請求狀態等等
理論支撐 。目前比較主流的鏈路追蹤產品都是啟發于google發表的Dapper , Dapper闡述了分布式系統,特別是微服務架構中鏈路追蹤的概念、數據表示、埋點、傳遞、收集、存儲與展示等技術細節 。
標準化 。OpenTracing(http://opentracing.io/)是一個分布式跟蹤框架 。OpenTracing通過提供平臺無關、廠商無關的API,使得開發人員能夠方便的添加(或更換)追蹤系統的實現 。目前OpenTracing正在為全球的分布式追蹤,提供統一的概念和數據標準 。
2、追蹤理論 - Dapper為了實現鏈路追蹤,dapper提出了trace,span,annotation的概念 。
Trace的含義比較直觀,就是鏈路,指一個請求經過后端所有服務的路徑,每一條鏈路都用一個全局唯一的traceid來標識 。
span之間存在著父子關系,上游的span是下游的父span,每個span由spanid和parentid來標識,spanid在一條鏈路中唯一 。
一個span一般由client和server兩個部分的信息組成 。按照時間順序來解釋 , client節點(或者是調用方)首先發出請求,產生”client send”(cs)事件,緊接著server節點(或者是提供方)收到請求,產生”server receive”(sr)事件,server處理完成之后回復給client,產生”server send”事件 , 最后client收到回復,產生”client receive”事件 。Client與server兩個節點的span信息合并成一次完整的調用 , 即一個完整的span 。
Dapper中還定義了annotation的概念,用于用戶自定義事件 。
3、通用架構分析主流的鏈路追蹤產品架構包含以下四大模塊:采樣、收集、存儲與展示 。

藍印花布的歷史由來

文章插圖
通用架構圖
3.1 采樣采樣包含采集埋點、鏈路信息的傳遞以及鏈路信息上報,目前主流的埋點方式有三種 , 分別是應用攔截埋點,探針(Java agent)埋點,服務器攔截埋點 。其中應用攔截埋點有代碼侵入,需要二次開發,其他二者與服務的耦合度較低,無需侵入 。
由于每一個請求就會生成一個鏈路 , 為了減少性能消耗,避免存儲資源的浪費,dapper并不會上報所有的span數據,而是使用采樣的方式 。通過采集端自適應地調整采樣率,控制span上報的數量 , 可以在發現性能瓶頸的同時,有效減少性能損耗 。
3.2 收集收集端服務接收采集到的鏈路信息并進行分析,鏈路信息的傳遞有兩種方 , 分別是http和grpc,其中http方式簡單易用、維護成本低,使用率較高,grpc性能突出,但需要客戶端代碼 , 維護成本較高 。
3.3 存儲分布式鏈路追蹤系統支持海量的數據庫存儲 。Mysql、Hbase、ElasticSearch等關系型數據庫和非關系型數據庫均能存儲鏈路信息,主流的存儲選擇是ElasticSearch,ElasticSearch可以提供高效的數據檢索 , 為數據的應用提供可靠的性能支持 。
3.4 展示目前主流的分布式鏈路追蹤框架大多有自己的鏈路展示UI,內容主要有服務拓撲、調用鏈時序圖和檢索等 。
4、主流的實現方式目前比較典型的分布式鏈路追蹤框架主要有skywalking、istio和zipkin

相關經驗推薦