成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Skywalking分布式鏈路追蹤入門

開發 開發工具 分布式
本文主要介紹 SkyWalking ,它是一款優秀的國產 APM 工具,并且已經成為了apache基金會的頂級項目,它包括了分布式追蹤、性能指標分析、應用和服務依賴分析等。

今天帶大家了解一款分布式鏈路追蹤軟件,為什么要介紹鏈路追蹤呢?

當前互聯網行業發展紅火,業務也越來越復雜、龐大,單機應用已經無法滿足日常需求,分布式、微服務架構應運而生。在微服務的環境中,存在日常系統的層層調用,會不停的在各個服務中進行,如果沒有一個調用鏈路的完整記錄,排查問題將會異常困難。

[[357992]]

APM(應用性能管理)

針對上面描述的情況,apm給大家帶來了解決方案,目前業界常見的一些 APM 工具主要有: Cat、Zipkin、Pinpoint、SkyWalking。

本文主要介紹 SkyWalking ,它是一款優秀的國產 APM 工具,并且已經成為了apache基金會的頂級項目,它包括了分布式追蹤、性能指標分析、應用和服務依賴分析等。

skywalking入門

軟件安裝不做描述,大家可以自行查閱資料。

官方地址:https://skywalking.apache.org/

先來看下軟件的運行界面,如下圖


 

介紹下skywalking中重要的三個概念

  • 服務(Service):指服務集群
  • 端點(Endpoint):對外的接口
  • 實例(Instance):指集群中的實例

skywalking架構圖


可以將skywalking看成三大塊,第一塊為數據采集,第二塊則是skywalking服務,第三塊是數據存儲。

如何將項目接入skywalking呢?

skywalking的接入非常簡單,只需要指定java啟動參數即可,如下圖


  1. // 指定運行的java agent 
  2. -javaagent:D:\soft\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar 
  3. // 設置該程序,在skywalking中的名字 
  4. -Dskywalking.agent.service_name=stressTest 
  5. // skywalking管理端口 
  6. -Dskywalking.collector.backend_service=localhost:11800 

 skywalking原理

大家看到上面的應用案例中,有下面的代碼

  1. -javaagent:/path/to/skywalking-agent.jar 

如果對javaagent了解的話,就知道了,其實skywalking的原理就是使用java agent(java探針)。Java agent是java命令的一個參數。參數 javaagent 可以用于指定一個 jar 包。

  • 這個 jar 包的 MANIFEST.MF 文件必須指定 Premain-Class 項。
  • Premain-Class 指定的那個類必須實現 premain() 方法。

當Java 虛擬機啟動時,在執行 main 函數之前,JVM 會先運行 -javaagent 所指定 jar 包內 Premain Class 這個類的 premain 方法 。

自己實現Java agent

下面我們簡單寫一個java agent

agent代碼

  1. public class MyAgent { 
  2. /** 
  3. * agentArgs 是 premain 函數得到的程序參數,隨同 “– javaagent”一起傳入。 
  4. * Inst 是一個 java.lang.instrument.Instrumentation 的實例,由 JVM 自動傳入。 
  5. */ 
  6. public static void premain(String agentArgs, Instrumentation inst) { 
  7. System.out.println("=========premain方法執行1========"); 
  8. System.out.println(agentArgs); } 
  9. /** 
  10. * 如果不存在 premain(String agentArgs, Instrumentation inst) 
  11. * 則會執行 premain(String agentArgs) 
  12. */ 
  13. public static void premain(String agentArgs) { 
  14.   System.out.println("=========premain方法執行2========"); 
  15.   System.out.println(agentArgs); 
  16.   } 

 為了不去手動寫MANIFREST.MF文件,我們引入maven插件

  1. <plugin> 
  2. <groupId>org.apache.maven.plugins</groupId> 
  3. <artifactId>maven-jar-plugin</artifactId> 
  4. <version>3.1.0</version> 
  5. <configuration> 
  6. <archive> 
  7. <!--自動添加META-INF/MANIFEST.MF --> 
  8. <manifest> 
  9. <addClasspath>true</addClasspath> 
  10. </manifest> 
  11. <manifestEntries> 
  12. <Premain-Class>com.example.agent.PreMainAgent</Premain-Class> 
  13. </manifestEntries> 
  14. </archive> 
  15. </configuration> 
  16. </plugin> 

 執行mvn clean package打包程序,會得到myAgent.jar如下圖


編寫主程序

  1. public class Test { 
  2. public static void main(String[] args) { 
  3. System.out.println("主程序..."); 

 idea啟動時指定agent,如下圖


執行主程序結果如下:

  1. =========premain方法執行1======== 
  2. null 
  3. 主程序... 

 主程序...

可以看到premain方法執行了,且沒有傳入參數,如果需要傳入參數javagent屬性如下設置即可:

  1. -javaagent:/Users/ganhuojun/code/myagent/target/myAgent.jar=abc 

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2024-06-07 13:04:31

2024-11-28 08:57:21

分布式鏈路Skywalking

2024-01-26 07:49:49

Go分布式鏈路

2021-02-22 07:58:51

分布式鏈路追蹤

2025-03-11 14:16:09

2020-09-11 09:44:04

微服務分布式鏈路

2024-08-21 08:09:17

2024-10-24 08:51:19

分布式鏈路項目

2023-11-21 08:25:09

2024-07-09 08:11:56

2021-11-08 14:10:37

分布式Spring鏈路

2022-11-26 09:49:07

分布式鏈路追蹤技術

2022-08-05 10:03:17

分布式微服務

2022-05-23 08:23:24

鏈路追蹤SleuthSpring

2023-10-26 00:00:00

分布式系統定位

2020-05-26 11:59:30

日志鏈路微服務架構

2011-09-13 14:21:00

IRF交換機基礎分布式鏈路聚合

2022-05-25 08:23:32

ZipKinTwitter開源項目

2022-09-25 22:19:24

Dapr分布式追蹤

2022-10-10 09:17:43

數據查詢
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲人在线播放 | 日韩精品在线观看网站 | 午夜精品一区二区三区在线视频 | 日日躁狠狠躁aaaaxxxx | 欧美xxxx在线 | 日本精品视频在线 | 欧美日韩a | 韩国精品在线观看 | 亚洲国产一区在线 | 国产精品视频一二三区 | 岛国av免费在线观看 | 久久乐国产精品 | 色网在线看 | 精品99爱视频在线观看 | 久久久精品久久 | 黄色视频a级毛片 | 黄a在线观看 | 久久伊 | 欧美精品导航 | 天堂一区二区三区四区 | 精品欧美乱码久久久久久 | a在线v| 久久国产精品偷 | 成人国产精品一级毛片视频毛片 | 蜜臀网| 欧美一区二区黄 | 日日操夜夜操天天操 | 久草在线 | 欧美黄 片免费观看 | 久久精品免费一区二区三 | 91精品国产一区二区三区香蕉 | 国产成人短视频在线观看 | 国产在线一区二区三区 | 91一区二区 | 一区二区三区在线 | 久久久免费观看视频 | 国产精品99精品久久免费 | 18成人在线观看 | h视频在线看 | 国产在线观看网站 | 99久久婷婷国产综合精品首页 |