ApacheSkyWalking的架構(gòu)設(shè)計是怎樣的

Apache SkyWalking的架構(gòu)設(shè)計是怎樣的,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、成都做網(wǎng)站、安丘網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、安丘網(wǎng)絡(luò)營銷、安丘企業(yè)策劃、安丘品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供安丘建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn

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

Apache SkyWalking的架構(gòu)設(shè)計是怎樣的

架構(gòu)圖

對于APM而言,agent或SDKs僅是如何使用libs的技術(shù)細(xì)節(jié)。手動或自動的形式與架構(gòu)無關(guān),因此在本文中,我們不講這些內(nèi)容,可將這些看成為Client lib。

  基本原理

關(guān)于SkyWalking架構(gòu)設(shè)計的基本原則就是:

1)易于維護(hù);

2)可控;

3)基于流;

為了達(dá)到此目的,SkyWalking后端提供了如下設(shè)計:

1)模塊化設(shè)計;

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

3)集群發(fā)現(xiàn)機(jī)制;

4)流模式;

5)可切換的存儲實現(xiàn);

一、模塊化

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

二、模塊

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

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

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

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

1)根節(jié)點(diǎn)是模塊名稱,如:cluster,naming;

2)次級節(jié)點(diǎn)是此模塊的功能實現(xiàn)名稱,如:zookeeper是cluster模塊;

3)第三級節(jié)點(diǎn)是功能實現(xiàn)的屬性,如:hostPort和sessionTimeout是zookeeper需要的屬性;

 

三、多連接方式

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

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

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

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

Apache SkyWalking的架構(gòu)設(shè)計是怎樣的

  四、收集器集群發(fā)現(xiàn)

當(dāng)收集器以集群模式運(yùn)行時,收集器必須以某種方式發(fā)現(xiàn)彼此。在默認(rèn)情況下,SkyWalking使用zookeeper進(jìn)行協(xié)調(diào),并以此作為發(fā)現(xiàn)的注冊中心。

如此說來,客戶端的lib將不會使用zookeeper來查找集群。建議用戶不要這樣做。因為集群發(fā)現(xiàn)機(jī)制是可切換的,由模塊化核心提供?;谶@一點(diǎn),就打破了可切換的能力。

我們希望社區(qū)能夠提供更多的關(guān)于集群發(fā)現(xiàn)的功能實現(xiàn)。如現(xiàn)在有的Eureka,Consul,Kubernate。

五、流模式

流模式傾向于輕量級的storm/spark實現(xiàn),并允許使用api來構(gòu)建流過程圖(DAG),以及每個節(jié)點(diǎn)的輸入/輸出的數(shù)據(jù)約定。

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

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

1)同步過程。傳統(tǒng)的方法調(diào)用。

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

3)遠(yuǎn)程過程,聚合矩陣收集器,通過這種方式,選擇器在節(jié)點(diǎn)中定義,以決定如何在集群中找到收集器。(HashCode,Rolling,F(xiàn)oreverFirst是三種支持的方式)

通過這些特性,收集器就像一個流動的網(wǎng)一樣運(yùn)行。通過聚合指標(biāo)和不依賴于存儲實現(xiàn)功能來支持同時編寫同樣的id。

六、可切換的存儲實現(xiàn)

因為流模式負(fù)責(zé)并發(fā),所以存儲實現(xiàn)的職責(zé)是提供高速寫和組查詢。

現(xiàn)在,支持ElasticSearch,也支持H2預(yù)覽版,同時支持ShardingSphere項目用于MySQL關(guān)系數(shù)據(jù)庫集群的管理。

七、Web UI

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

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

看完上述內(nèi)容,你們掌握Apache SkyWalking的架構(gòu)設(shè)計是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

新聞標(biāo)題:ApacheSkyWalking的架構(gòu)設(shè)計是怎樣的
當(dāng)前網(wǎng)址:http://muchs.cn/article42/ijogec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)微信小程序、搜索引擎優(yōu)化域名注冊、企業(yè)網(wǎng)站制作外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)