天天看點

介紹和部署微服務鍊路追蹤SkyWalking

作者:技術閑聊DD

skywalking和鍊路追蹤

SkyWalking介紹

首先我們要明白一點,在微服務的架構中,為什麼要做鍊路追蹤?解決問題的痛點在哪裡?其實無外乎是如下幾個問題:

  • 如何将整個調用鍊路串起來,并能夠快速定位問題?
  • 如何梳理清楚各個微服務之間的依賴關系?
  • 如何針對各個微服務接口進行性能分析?
  • 如何跟蹤整個業務流程的調用處理順序?

SkyWalking是一個開源的應用性能監控系統,它主要用于跟蹤、監測和優化分布式系統和微服務架構的性能。它提供了分布式系統的全鍊路追蹤、名額采集和可視化等功能,可以幫助開發人員及運維人員在實時和曆史資料中快速定位和解決性能問題。SkyWalking支援多種語言,包括Java、.NET、PHP、Node.js等,也支援多種協定,如HTTP、gRPC、Dubbo等。另外,SkyWalking還整合了告警、灰階釋出、服務依賴分析等功能,為企業級分布式系統的監控和管理提供了全面的解決方案。

它還可以與其他應用程式性能監控工具,如 Grafana 和 Elasticsearch 內建,進而提供更加強大的監控和分析能力。

官網位址:skywalking.apache.org/

中文文檔位址:https://skyapm.github.io/document-cn-translation-of-skywalking/

市面上鍊路追蹤架構對比

常見的鍊路追蹤架構有如下四種:

  • Zipkin是Twitter開源的調用鍊分析工具,目前基于springcloud sleuth得到了廣泛的使用,特點是輕量,使用部署簡單。
  • Pinpoint是南韓人開源的基于位元組碼注入的調用鍊分析,以及應用監控分析工具。特點是支援多種插件,UI功能強大,接入端無代碼侵入。
  • SkyWalking是本土開源的基于位元組碼注入的調用鍊分析,以及應用監控分析工具。特點是支援多種插件,UI功能較強,接入端無代碼侵入。目前已加入Apache孵化器。
  • CAT是大衆點評開源的基于編碼和配置的調用鍊分析,應用監控分析,日志采集,監控報警等一系列的監控平台工具。

優缺點對比:

介紹和部署微服務鍊路追蹤SkyWalking

性能對比

網上有人對skywalking,zipkin,pinpoint對系統性能影響進行了測試,整體下來,skywalking的探針對吞吐量的影響最小,zipkin的吞吐量居中。pinpoint的探針對吞吐量的影響較為明顯。

Skywalking的功能特性

  1. 多種監控手段,可以通過語言探針和service mesh獲得監控的資料;
  2. 支援多種語言自動探針,包括 Java,.NET Core 和 Node.JS;
  3. 輕量高效,無需大資料平台和大量的伺服器資源;
  4. 子產品化,UI、存儲、叢集管理都有多種機制可選;
  5. 支援告警;
  6. 優秀的可視化解決方案。

skywalking搭建和部署

skywalking分為如下幾個部分:

  • skywalking agent和業務系統綁定在一起,負責收集各種監控資料。
  • skywalking oapservice是負責處理監控資料的,比如接受skywalking agent的監控資料,并存儲在資料庫中;接受skywalking webapp的前端請求,從資料庫查詢資料,并傳回資料給前端。Skywalking oapservice通常以叢集的形式存在。
  • skywalking webapp,前端界面,用于展示資料。

1. 下載下傳 SkyWalking

官網比較難下載下傳 是以我這邊給大家提供了下載下傳連結,大家可以通過該連結下載下傳。

https://download.csdn.net/download/wu2374633583/87894610

2. 目錄結構介紹

解壓以後就是這樣:

介紹和部署微服務鍊路追蹤SkyWalking
介紹和部署微服務鍊路追蹤SkyWalking

3. 搭建SkyWalking OAP 服務

啟動腳本bin/startup.sh

介紹和部署微服務鍊路追蹤SkyWalking

日志資訊存儲在logs目錄

介紹和部署微服務鍊路追蹤SkyWalking

啟動成功後會有兩個服務,如下:

  • skywalking-oap-server:暴露11800 和 12800 兩個端口,分别為收集監控資料的端口11800和接受前端請求的端口12800,修改端口可以修改config/applicaiton.yml
  • skywalking-web-ui:服務會占用 8080 端口, 修改端口可以修改webapp/webapp.yml
介紹和部署微服務鍊路追蹤SkyWalking
介紹和部署微服務鍊路追蹤SkyWalking
介紹和部署微服務鍊路追蹤SkyWalking

server.port:SkyWalking UI服務端口,預設是8080;

collector.ribbon.listOfServers:SkyWalking OAP服務位址數組,SkyWalking UI界面的資料是通過請求SkyWalking OAP服務來獲得;

通路:http://192.168.164.128:8080/ 得到如下界面:

介紹和部署微服務鍊路追蹤SkyWalking

4. SkyWalking中的應用名稱

服務(Service) :表示對請求提供相同行為的一系列或一組工作負載,在使用Agent時,可以定義服務的名字;

服務執行個體(Service Instance) :上述的一組工作負載中的每一個工作負載稱為一個執行個體, 一個服務執行個體實際就是作業系統上的一個真實程序;

端點(Endpoint) :對于特定服務所接收的請求路徑, 如HTTP的URI路徑和gRPC服務的類名 + 方法簽名。

下一篇我會為大家介紹SkyWalking如何接入到微服務中,同時如何在微服務中使用。希望大家多多關注!!

繼續閱讀