微服務-springcloud-springboot-Skywalking詳解(下載安裝)

一、SkyWalking核心介紹

1. 什么是SkyWalking?

Apache SkyWalking是一款國人主導開發的開源APM(應用性能管理)系統,2015年由吳晟創建,2017年進入Apache孵化器,2019年畢業成為Apache頂級項目。它通過分布式追蹤、服務網格遙測分析、指標聚合和可視化一體化解決方案,提供分布式系統的觀測性能力

核心特點:
  • 多語言自動探針:支持Java、.NET Core、Node.js、PHP、Golang等十余種語言

  • 服務拓撲自動發現:動態繪制服務間調用關系圖

  • 細粒度性能分析:支持方法級代碼執行追蹤

  • 多維度監控:整合Metrics、Logging、Tracing三大觀測支柱

  • 云原生友好:完美支持Kubernetes、Service Mesh環境

2. APM系統核心價值

傳統監控系統(如Zabbix、Prometheus)與APM系統的對比:

維度傳統監控系統APM系統
監控焦點硬件/系統級指標應用內部執行過程
數據粒度服務級別代碼方法級別
核心能力異常告警性能瓶頸診斷
典型指標CPU/內存/磁盤使用率調用鏈追蹤、事務響應時間
問題定位深度知道"有問題"知道"為什么有問題"

SkyWalking通過分布式追蹤技術,可以還原一個請求在微服務架構中的完整流轉路徑,精確到每個服務的代碼執行耗時,這正是解決"慢請求"問題的關鍵。

二、技術架構深度解析

1. 整體架構組成

  • 上部分?Agent?:負責從應用中,收集鏈路信息,發送給 SkyWalking OAP 服務器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 數據信息。而我們目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 數據,傳遞給服務器。
  • 下部分?SkyWalking OAP?:負責接收 Agent 發送的 Tracing 數據信息,然后進行分析(Analysis Core) ,存儲到外部存儲器( Storage ),最終提供查詢( Query )功能。
  • 右部分?Storage?:Tracing 數據存儲。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多種存儲器。而我們目前采用的是 ES ,主要考慮是 SkyWalking 開發團隊自己的生產環境采用 ES 為主。
  • 左部分?SkyWalking UI?:負責提供控臺,查看鏈路等等。
數據流向:

核心組件:
  • Agent:駐留在應用進程內的探針,通過字節碼增強技術收集數據

  • OAP Server:可集群部署的觀測分析平臺,負責數據聚合、計算和存儲

  • Storage:支持Elasticsearch、MySQL、TiDB、H2等多種存儲后端

  • UI:功能強大的可視化控制臺

2. 探針工作原理

以Java探針為例,其通過Java Agent機制實現無侵入式埋點:

// 典型字節碼增強示例(簡化版)
public class TracingInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {@Overrideprotected ClassMatch enhanceClass() {return byName("org.apache.dubbo.proxy.Invoker");}@Overridepublic ConstructorInterceptPoint[] getConstructorsInterceptPoints() {// 方法攔截點定義}
}

這種技術使得業務代碼無需任何修改即可獲得監控能力,相比CAT等需要代碼埋點的方案具有明顯優勢。

三、競品對比分析

主流APM系統功能對比

特性SkyWalkingZipkinPinpointCAT
實現方式字節碼增強攔截請求字節碼增強代碼埋點
代碼侵入性
調用鏈粒度方法級接口級方法級代碼級
JVM監控支持不支持支持支持
服務拓撲自動生成自動生成需配置
存儲擴展性支持多DB有限HBase專用復雜
告警功能完善基礎完善

性能基準測試

根據官方測試報告(單節點OAP,ES存儲):

四、核心功能詳解

1. 分布式追蹤能力

  • 全鏈路追蹤:跨進程、跨線程的請求跟蹤

  • 智能采樣:動態調整采樣率平衡性能與數據完整性

  • 異常標記:自動標識調用鏈中的錯誤節點

2. 服務拓撲分析

自動生成的服務依賴圖可顯示:

  • 服務間調用關系

  • 流量方向與強度

  • 健康狀態(顏色標識)

  • 關鍵指標(成功率、延遲)

3. 性能剖析

-- 示例:查詢慢事務Top 5
SELECT service_name, avg_latency 
FROM endpoint_avg 
WHERE start_time > NOW() - 1h 
ORDER BY avg_latency DESC 
LIMIT 5

4. 告警體系

支持基于OLAP引擎的多維度告警規則:

  • 服務響應時間閾值

  • 錯誤率突增檢測

  • 服務心跳丟失

  • JVM內存溢出預警

告警渠道覆蓋:

  • 郵件

  • Webhook(支持釘釘、企業微信)

  • Slack

  • PagerDuty

五、典型應用場景

1. 微服務性能診斷

  • 定位跨服務調用的性能瓶頸

  • 分析分布式事務超時原因

  • 識別不合理的服務依賴

2. 云原生環境監控

  • Kubernetes Pod間通信分析

  • Service Mesh(Istio/Linkerd)可觀測性

  • 容器資源使用關聯分析

3. 生產環境運維

  • 灰度發布效果驗證

  • 突發流量影響評估

  • 容量規劃數據支持

六、SkyWalking環境搭建

1.SkyWalking下載

下載地址:Downloads | Apache SkyWalking

Skywalking主要是下載兩個包:SkyWalking APM和Java Agent,Skywalking APM提供后端服務和UI服務,Java Agent集成進應用進行數據收集傳輸。

SkyWalking APM

Java Agent

2.SkyWalking部署(Windows)

SkyWalking APM說明

SkyWalking APM解壓后得到apache-skywalking-apm-bin文件,重點關注以下3個目錄:

  • bin目錄下是啟動腳本,一般用startup命令啟動

  • config目錄下是配置文件,主要需要關注的是application.yml文件,里面有存儲策略、服務端口及查詢策略的配置信息。
Java Agent說明

Java Agent解壓后得到skywalking-agent文件:

  • skywalking-agent.jar:探針包,使用了java agent技術,可以攔截java應用的執行。
  • plugins目錄:這個目錄下主要放日志采集的插件,并且支持自定義插件。skywalking官方已經開發了大部分框架的插件,例如springmvc、dubbo等等。這個設計給skywalking賦予了極強的擴展性。
  • optional-plugins:備用插件庫,這里的插件在執行時不會被加載,只有放在plugins目錄下的插件才會被加載。這個目錄相當于倉庫,需要啟用什么功能的日志采集,就把對應的插件拷貝到plugins目錄。同理,如果想要不采集某種日志,就把對應的插件從plugins目錄中刪掉即可。
  • config目錄:這里是探針和插件的配置。比如說配置應用名稱(會體現在UI中)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90876.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90876.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90876.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Elasticsearch 字段值過長導致索引報錯問題排查與解決經驗總結

在最近使用 Elasticsearch 的過程中,我遇到了一個 字段值過長導致索引失敗 的問題。經過排查和多次嘗試,最終通過設置字段 "index": false 方式解決。本文將從問題現象、排查過程、問題分析、解決方案和建議等方面,詳細記錄這次踩坑…

使用idea 將一個git分支的部分記錄合并到git另一個分支

場景: 有多個版本分支,需要將其中一個分支的某一兩次提交合并到指定分支上 eg: 將v1.0.0分支中指定提交記錄 合并到 v1.0.1分支中 操作: 步驟一 idea切換項目分支到v1.0.1(需要合并到哪個分支就先站到哪個分支上) 步驟二 在ide…

基于深度學習的圖像分類:使用ShuffleNet實現高效分類

前言 圖像分類是計算機視覺領域中的一個基礎任務,其目標是將輸入的圖像分配到預定義的類別中。近年來,深度學習技術,尤其是卷積神經網絡(CNN),在圖像分類任務中取得了顯著的進展。ShuffleNet是一種輕量級的…

OpenGL里相機的運動控制

相機的核心構造一個是glm::lookAt函數,一個是glm::perspective函數,本文相機的一切運動都在于如何構建相應的參數傳入上述兩個函數里。glm::mat4 glm::lookAt(glm::vec3 const &eye,//相機所在位置glm::vec3 const &center,//要凝視的點glm::vec…

java設計模式 -【策略模式】

策略模式定義 策略模式(Strategy Pattern)是一種行為設計模式,允許在運行時選擇算法的行為。它將算法封裝成獨立的類,使得它們可以相互替換,而不影響客戶端代碼。 核心組成 Context(上下文)&…

項目重新發布更新緩存問題,Nginx清除緩存更新網頁

server {listen 80;server_name your.domain.com; # 替換為你的域名root /usr/share/nginx/html; # 替換為你的項目根目錄# 規則1:HTML 文件 - 永不緩存# 這是最關鍵的一步,確保瀏覽器總是獲取最新的入口文件。location /index.html {add_header Cache-…

系統架構師:系統安全與分析-思維導圖

系統安全與分析的定義??系統安全與分析是系統架構師在系統全生命周期中貫穿的核心職責,其本質是通過??識別、評估、防控安全風險,并基于數據與威脅情報進行動態分析??,構建從技術到管理的多層次防護體系,確保系統的保密性&a…

利用 Google Guava 的令牌桶限流實現數據處理限流控制

目錄 一、令牌桶限流機制原理 二、場景設計與目標 三、核心實現代碼(Java) 1. 完整代碼實現 四、運行效果分析 五、應用建議 在高吞吐數據處理場景中,如何限制數據處理速率、保護系統資源、防止下游服務過載是系統設計中重要的環節。本文…

小黑課堂計算機二級 WPS Office題庫安裝包2.52_Win中文_計算機二級考試_安裝教程

軟件下載 【名稱】:小黑課堂計算機二級 WPS Office題庫安裝包2.52 【大小】:584M 【語言】:簡體中文 【安裝環境】:Win10/Win11(其他系統不清楚) 【迅雷網盤下載鏈接】(務必手機注冊&#…

CSS3知識補充

1.偽類和偽元素: 簡單的偽類實例 :first-chlid :last-child :only-child :invalid 用戶行為偽類 :hover——上面提到過,只會在用戶將指針挪到元素上的時候才會激活,一般就是鏈接元素。:focus——只會在用戶使用鍵盤控制,選…

Spring Retry 異常重試機制:從入門到生產實踐

Spring Retry 異常重試機制&#xff1a;從入門到生產實踐 適用版本&#xff1a;Spring Boot 3.x spring-retry 2.x 本文覆蓋 注解聲明式、RetryTemplate 編程式、監聽器、最佳實踐 與 避坑清單&#xff0c;可直接落地生產。 一、核心坐標 <!-- Spring Boot Starter 已經幫…

VTK交互——CallData

0. 概要 這段代碼https://examples.vtk.org/site/Cxx/Interaction/CallData/是一個使用VTK(Visualization Toolkit)庫的示例程序,主要演示了自定義事件、回調函數和定時器的使用。程序創建一個旋轉球體場景,并通過定時器觸發自定義事件來更新計數器。以下是詳細解釋: 1.…

OCR工具集下載與保姆級安裝教程!!

軟件下載 軟件名稱&#xff1a;OCR工具集1.1 軟件語言&#xff1a;簡體中文 軟件大小&#xff1a;78.8M 系統要求&#xff1a;Windows7或更高&#xff0c; 32/64位操作系統 硬件要求&#xff1a;CPU2GHz &#xff0c;RAM4G或更高 盤丨下載&#xff1a;https://tool.nineya…

平時遇到的錯誤碼及場景?404?400?502?都是什么場景下什么含義,該怎么做 ?

? 一、常見 HTTP 錯誤碼及含義狀態碼含義簡述類型400Bad Request&#xff1a;請求格式有誤客戶端錯誤401Unauthorized&#xff1a;未授權客戶端錯誤403Forbidden&#xff1a;禁止訪問客戶端錯誤404Not Found&#xff1a;資源不存在客戶端錯誤405Method Not Allowed&#xff1a…

基于Tornado的WebSocket實時聊天系統:從零到一構建與解析

引言 在當今互聯網應用中&#xff0c;實時通信已成為不可或缺的一部分。無論是社交媒體、在線游戲還是協同辦公&#xff0c;用戶都期待即時、流暢的交互體驗。傳統的HTTP協議是無狀態的、單向的請求-響應模式&#xff0c;客戶端發起請求&#xff0c;服務器返回響應&#xff0c…

【語義分割】記錄2:yolo系列

圖像分割筆記1、源碼下載2、數據獲取3、環境配置4、模型訓練5、模型推理6、模型部署6.1 yolov5_flask學習7、版本上傳1、源碼下載 git clone https://github.com/ultralytics/ultralytics.gitgit回到對應版本&#xff1a; 方式一&#xff1a;使用 git checkout&#xff08;臨…

ubuntu22.04系統 算力4090服務器 病毒防護 查殺等 運維入門(三)clamAV工具離線查殺

以下有免費的4090云主機提供ubuntu22.04系統的其他入門實踐操作 地址&#xff1a;星宇科技 | GPU服務器 高性能云主機 云服務器-登錄 相關兌換碼星宇社區---4090算力卡免費體驗、共享開發社區-CSDN博客 兌換碼要是過期了&#xff0c;可以私信我獲取最新兌換碼&#xff01;&a…

微信小程序文件下載與預覽功能實現詳解

在微信小程序開發中&#xff0c;文件處理是常見需求&#xff0c;尤其是涉及合同、文檔等場景。本文將通過一個實際案例&#xff0c;詳細講解如何實現文件的下載、解壓、列表展示及預覽功能。 功能概述 該頁面主要實現了以下核心功能&#xff1a; 列表展示可下載的文件信息支持 …

postgresql執行創建和刪除時遇到的問題

刪除數據庫的時候出現的問題 有連接在占用 postgres=# DROP DATABASE "subgraph-dev"; ERROR: database "subgraph-dev" is being accessed by other users DETAIL: There is 1 other session using the database.強制斷開在用的連接 -- 替換 subgraph…

linux 應用層直接操作GPIO的方法

了解&#xff01;你使用的是 Rockchip RK3588S 平臺&#xff0c;需要操作 GPIO3_D5_d 這個引腳&#xff08;即 MCU_JTAG_TMS_M1/.../GPIO3_D5_d&#xff09;。以下是基于你提供的系統信息的具體操作步驟&#xff1a;&#x1f50d; 第一步&#xff1a;確認 GPIO 系統編號 在 RK3…