日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache SkyWalking的架构设计【译文】

發布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache SkyWalking的架构设计【译文】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Apache SkyWalking提供了一個功能強大并且很輕量級的后端。在此,將介紹為什么采用以下方式來設計它,以及它又是如何工作的。

  

架構圖

  對于APM而言,agent或SDKs僅是如何使用libs的技術細節。手動或自動的形式與架構無關,因此在本文中,我們不講這些內容,可將這些看成為Client lib。

  基本原理

  關于SkyWalking架構設計的基本原則就是:

  1)易于維護;

  2)可控;

  3)基于流;

  為了達到此目的,SkyWalking后端提供了如下設計:

  1)模塊化設計;

  2)為客戶端提供多種連接方式;

  3)集群發現機制;

  4)流模式;

  5)可切換的存儲實現;

  一、模塊化

  SkyWalking收集器(collector)是基于模塊化設計,用戶可以根據自己的需要,更改或集成收集器的功能。

  二、模塊

  模塊定義了一組特性,其中可包括一些技術上的實現(如:grpc/jetty服務器管理)、跟蹤分析(如:trace segment或者zipkin span解析器)或聚合特征。總而言之,這些都是由模塊來定義和實現的。

  每個模塊都可以通過Java接口定義自身的服務,而實現類均要實現這些服務。并且這些實現類要根據實現的功能定義所依賴的類有哪些。這意味著,即使是模塊的兩個不同的實現,也可以依賴于不同的模塊。

  另外,收集器中的模塊化核心會檢查啟動序列,如果沒有發現循環依賴或者依賴項,該核心功能會終止收集器。

  收集器會啟動所有模塊,這些模塊在application.yml文件中定義。此文件結構如下:

  1)根節點是模塊名稱,如:cluster,naming;

  2)次級節點是此模塊的功能實現名稱,如:zookeeper是cluster模塊;

  3)第三級節點是功能實現的屬性,如:hostPort和sessionTimeout是zookeeper需要的屬性;

  三、多連接方式

  首先,收集器提供兩種類型的連接,也就是兩種協議的支持:HTTP和gRPC。

  1)在HTTP中命名服務,在后端集群中,返回所有可用的收集器;

  2)Uplink服務支持gRPC(主要用于SkyWalking的本地代理)和HTTP,它跟蹤和度量收集器。每個客戶端只向單個收集器發送監測數據(跟蹤和度量)。若連接的收集器斷線,,則嘗試連接其他的收集器。

  客戶端lib和收集器集群之間的處理流示例

  

  四、收集器集群發現

  當收集器以集群模式運行時,收集器必須以某種方式發現彼此。在默認情況下,SkyWalking使用zookeeper進行協調,并以此作為發現的注冊中心。

  如此說來,客戶端的lib將不會使用zookeeper來查找集群。建議用戶不要這樣做。因為集群發現機制是可切換的,由模塊化核心提供。基于這一點,就打破了可切換的能力。

  我們希望社區能夠提供更多的關于集群發現的功能實現。如現在有的Eureka,Consul,Kubernate。

  五、流模式

  流模式傾向于輕量級的storm/spark實現,并允許使用api來構建流過程圖(DAG),以及每個節點的輸入/輸出的數據約定。

  新模塊可以找到并擴展已有的過程圖。

  在處理過程中有三種情況:

  1)同步過程。傳統的方法調用。

  2)異步過程,基于隊列緩沖區的a.k.a批處理過程。

  3)遠程過程,聚合矩陣收集器,通過這種方式,選擇器在節點中定義,以決定如何在集群中找到收集器。(HashCode,Rolling,ForeverFirst是三種支持的方式)

  通過這些特性,收集器就像一個流動的網一樣運行。通過聚合指標和不依賴于存儲實現功能來支持同時編寫同樣的id。

  六、可切換的存儲實現

  因為流模式負責并發,所以存儲實現的職責是提供高速寫和組查詢。

  現在,支持ElasticSearch,也支持H2預覽版,同時支持ShardingSphere項目用于MySql關系數據庫集群的管理。

  七、Web UI

  除了收集器設計的原則之外,UI也是SkyWalking中的另一個核心部分。它基于React、Antd和Zuul代理來提供收集器集群發現、查詢分派和可視化。

  Web UI使用localhost:10800來為收集器集群做命名查詢。?

參考鏈接:https://zhuanlan.zhihu.com/p/38442093?utm_source=wechat_session&utm_medium=social&utm_oi=54098577588224&from=timeline&isappinstalled=0

原文地址:https://www.cnblogs.com/supersnowyao/p/9246742.html

.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的Apache SkyWalking的架构设计【译文】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。