什麼是鍊路追蹤
微服務架構是通過業務來劃分服務的,使用 REST 調用。對外暴露的一個接口,可能需要很多個服務協同才能完成這個接口功能,如果鍊路上任何一個服務出現問題或者網絡逾時,都會形成導緻接口調用失敗。随着業務的不斷擴張,服務之間互相調用會越來越複雜。
随着服務的越來越多,對調用鍊的分析會越來越複雜。它們之間的調用關系也許如下:
面對以上情況,我們就需要一些可以幫助了解系統行為、用于分析性能問題的工具,以便發生故障的時候,能夠快速定位和解決問題,這就是所謂的 APM(應用性能管理)。
什麼是 SkyWalking
目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking;Apache SkyWalking 是觀察性分析平台和應用性能管理系統。提供分布式追蹤、服務網格遙測分析、度量聚合和可視化一體化解決方案。
- Skywalking Agent: 使用 JavaAgent 做位元組碼植入,無侵入式的收集,并通過 HTTP 或者 gRPC 方式發送資料到 SkyWalking Collector。
- SkyWalking Collector: 鍊路資料收集器,對 agent 傳過來的資料進行整合分析處理并落入相關的資料存儲中。
- Storage: SkyWalking 的存儲,時間更疊,SW 已經開發疊代到了 6.x 版本,在 6.x 版本中支援以 ElasticSearch(支援 6.x)、Mysql、TiDB、H2、作為存儲媒體進行資料存儲。
- UI: Web 可視化平台,用來展示落地的資料。
SkyWalking 功能特性
- 多種監控手段,語言探針和服務網格(Service Mesh)
- 多語言自動探針,Java,.NET Core 和 Node.JS
- 輕量高效,不需要大資料
- 子產品化,UI、存儲、叢集管理多種機制可選
- 支援告警
- 優秀的可視化方案