av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

詳解全鏈路監(jiān)控架構(gòu):目標(biāo)、功能模塊、Dapper和方案比較

概述

創(chuàng)新互聯(lián)是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),西山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:西山等地區(qū)。西山做網(wǎng)站價(jià)格咨詢(xún):028-86922220

隨著微服務(wù)架構(gòu)的流行,服務(wù)按照不同的維度進(jìn)行拆分,一次請(qǐng)求往往需要涉及到多個(gè)服務(wù)?;ヂ?lián)網(wǎng)應(yīng)用構(gòu)建在不同的軟件模塊集上,這些軟件模塊,有可能是由不同的團(tuán)隊(duì)開(kāi)發(fā)、可能使用不同的編程語(yǔ)言來(lái)實(shí)現(xiàn)、有可能布在了幾千臺(tái)服務(wù)器,橫跨多個(gè)不同的數(shù)據(jù)中心。因此,就需要一些可以幫助理解系統(tǒng)行為、用于分析性能問(wèn)題的工具,以便發(fā)生故障的時(shí)候,能夠快速定位和解決問(wèn)題。

全鏈路監(jiān)控組件就在這樣的問(wèn)題背景下產(chǎn)生了。最出名的是谷歌公開(kāi)的論文提到的 Google Dapper。想要在這個(gè)上下文中理解分布式系統(tǒng)的行為,就需要監(jiān)控那些橫跨了不同的應(yīng)用、不同的服務(wù)器之間的關(guān)聯(lián)動(dòng)作。

分布式服務(wù)調(diào)用鏈路

在復(fù)雜的微服務(wù)架構(gòu)系統(tǒng)中,幾乎每一個(gè)前端請(qǐng)求都會(huì)形成一個(gè)復(fù)雜的分布式服務(wù)調(diào)用鏈路。一個(gè)請(qǐng)求完整調(diào)用鏈可能如下圖所示:

一個(gè)請(qǐng)求完整調(diào)用鏈

那么在業(yè)務(wù)規(guī)模不斷增大、服務(wù)不斷增多以及頻繁變更的情況下,面對(duì)復(fù)雜的調(diào)用鏈路就帶來(lái)一系列問(wèn)題:

  • 如何快速發(fā)現(xiàn)問(wèn)題?
  • 如何判斷故障影響范圍?
  • 如何梳理服務(wù)依賴(lài)以及依賴(lài)的合理性?
  • 如何分析鏈路性能問(wèn)題以及實(shí)時(shí)容量規(guī)劃?

同時(shí)需要關(guān)注在請(qǐng)求處理期間各個(gè)調(diào)用的各項(xiàng)性能指標(biāo),比如:吞吐量(TPS)、響應(yīng)時(shí)間及錯(cuò)誤記錄等。

  • 吞吐量,根據(jù)拓?fù)淇捎?jì)算相應(yīng)組件、平臺(tái)、物理設(shè)備的實(shí)時(shí)吞吐量。
  • 響應(yīng)時(shí)間,包括整體調(diào)用的響應(yīng)時(shí)間和各個(gè)服務(wù)的響應(yīng)時(shí)間等。
  • 錯(cuò)誤記錄,根據(jù)服務(wù)返回統(tǒng)計(jì)單位時(shí)間異常次數(shù)。

全鏈路性能監(jiān)控 從整體維度到局部維度展示各項(xiàng)指標(biāo),將跨應(yīng)用的所有調(diào)用鏈性能信息集中展現(xiàn),可方便度量整體和局部性能,并且方便找到故障產(chǎn)生的源頭,生產(chǎn)上可極大縮短故障排除時(shí)間。

有了全鏈路監(jiān)控工具,能夠達(dá)到:

  • 請(qǐng)求鏈路追蹤,故障快速定位:可以通過(guò)調(diào)用鏈結(jié)合業(yè)務(wù)日志快速定位錯(cuò)誤信息。
  • 可視化: 各個(gè)階段耗時(shí),進(jìn)行性能分析。
  • 依賴(lài)優(yōu)化:各個(gè)調(diào)用環(huán)節(jié)的可用性、梳理服務(wù)依賴(lài)關(guān)系以及優(yōu)化。
  • 數(shù)據(jù)分析,優(yōu)化鏈路:可以得到用戶(hù)的行為路徑,匯總分析應(yīng)用在很多業(yè)務(wù)場(chǎng)景。

1、全鏈路監(jiān)控目標(biāo)

如上所述,那么我們選擇全鏈路監(jiān)控組件有哪些目標(biāo)要求呢?Google Dapper中也提到了,總結(jié)如下:

1.探針的性能消耗

2.APM組件服務(wù)的影響應(yīng)該做到足夠小。

服務(wù)調(diào)用埋點(diǎn)本身會(huì)帶來(lái)性能損耗,這就需要調(diào)用跟蹤的低損耗,實(shí)際中還會(huì)通過(guò)配置采樣率的方式,選擇一部分請(qǐng)求去分析請(qǐng)求路徑。在一些高度優(yōu)化過(guò)的服務(wù),即使一點(diǎn)點(diǎn)損耗也會(huì)很容易察覺(jué)到,而且有可能迫使在線(xiàn)服務(wù)的部署團(tuán)隊(duì)不得不將跟蹤系統(tǒng)關(guān)停。

3.代碼的侵入性

4.即也作為業(yè)務(wù)組件,應(yīng)當(dāng)盡可能少入侵或者無(wú)入侵其他業(yè)務(wù)系統(tǒng),對(duì)于使用方透明,減少開(kāi)發(fā)人員的負(fù)擔(dān)。

5.對(duì)于應(yīng)用的程序員來(lái)說(shuō),是不需要知道有跟蹤系統(tǒng)這回事的。

如果一個(gè)跟蹤系統(tǒng)想生效,就必須需要依賴(lài)應(yīng)用的開(kāi)發(fā)者主動(dòng)配合,那么這個(gè)跟蹤系統(tǒng)也太脆弱了,往往由于跟蹤系統(tǒng)在應(yīng)用中植入代碼的bug或疏忽導(dǎo)致應(yīng)用出問(wèn)題,這樣才是無(wú)法滿(mǎn)足對(duì)跟蹤系統(tǒng)“無(wú)所不在的部署”這個(gè)需求。

6.可擴(kuò)展性

7.一個(gè)優(yōu)秀的調(diào)用跟蹤系統(tǒng)必須支持分布式部署,具備良好的可擴(kuò)展性。能夠支持的組件越多當(dāng)然越好。

或者提供便捷的插件開(kāi)發(fā)API,對(duì)于一些沒(méi)有監(jiān)控到的組件,應(yīng)用開(kāi)發(fā)者也可以自行擴(kuò)展。

8.數(shù)據(jù)的分析

9.數(shù)據(jù)的分析要快 ,分析的維度盡可能多。

跟蹤系統(tǒng)能提供足夠快的信息反饋,就可以對(duì)生產(chǎn)環(huán)境下的異常狀況做出快速反應(yīng)。分析的全面,能夠避免二次開(kāi)發(fā)。

2、全鏈路監(jiān)控功能模塊

一般的全鏈路監(jiān)控系統(tǒng),大致可分為四大功能模塊:

1.埋點(diǎn)與生成日志

埋點(diǎn)即系統(tǒng)在當(dāng)前節(jié)點(diǎn)的上下文信息,可以分為 客戶(hù)端埋點(diǎn)、服務(wù)端埋點(diǎn),以及客戶(hù)端和服務(wù)端雙向型埋點(diǎn)。埋點(diǎn)日志通常要包含以下內(nèi)容traceId、spanId、調(diào)用的開(kāi)始時(shí)間,協(xié)議類(lèi)型、調(diào)用方ip和端口,請(qǐng)求的服務(wù)名、調(diào)用耗時(shí),調(diào)用結(jié)果,異常信息等,同時(shí)預(yù)留可擴(kuò)展字段,為下一步擴(kuò)展做準(zhǔn)備;

2.收集和存儲(chǔ)日志

主要支持分布式日志采集的方案,同時(shí)增加MQ作為緩沖;

每個(gè)機(jī)器上有一個(gè) deamon 做日志收集,業(yè)務(wù)進(jìn)程把自己的Trace發(fā)到daemon,daemon把收集Trace往上一級(jí)發(fā)送;

多級(jí)的collector,類(lèi)似pub/sub架構(gòu),可以負(fù)載均衡;

對(duì)聚合的數(shù)據(jù)進(jìn)行 實(shí)時(shí)分析和離線(xiàn)存儲(chǔ);

離線(xiàn)分析 需要將同一條調(diào)用鏈的日志匯總在一起;

3.分析和統(tǒng)計(jì)調(diào)用鏈路數(shù)據(jù),以及時(shí)效性

調(diào)用鏈跟蹤分析:把同一TraceID的Span收集起來(lái),按時(shí)間排序就是timeline。把ParentID串起來(lái)就是調(diào)用棧。

拋異?;蛘叱瑫r(shí),在日志里打印TraceID。利用TraceID查詢(xún)調(diào)用鏈情況,定位問(wèn)題。

依賴(lài)度量:

  • 強(qiáng)依賴(lài):調(diào)用失敗會(huì)直接中斷主流程
  • 高度依賴(lài):一次鏈路中調(diào)用某個(gè)依賴(lài)的幾率高
  • 頻繁依賴(lài):一次鏈路調(diào)用同一個(gè)依賴(lài)的次數(shù)多

離線(xiàn)分析:按TraceID匯總,通過(guò)Span的ID和ParentID還原調(diào)用關(guān)系,分析鏈路形態(tài)。

實(shí)時(shí)分析:對(duì)單條日志直接分析,不做匯總,重組。得到當(dāng)前QPS,延遲。

4.展現(xiàn)以及決策支持

3、Google Dapper

3.1 Span

基本工作單元,一次鏈路調(diào)用(可以是RPC,DB等沒(méi)有特定的限制)創(chuàng)建一個(gè)span,通過(guò)一個(gè)64位ID標(biāo)識(shí)它,uuid較為方便,span中還有其他的數(shù)據(jù),例如描述信息,時(shí)間戳,key-value對(duì)的(Annotation)tag信息,parent_id等,其中parent-id可以表示span調(diào)用鏈路來(lái)源。

Span

上圖說(shuō)明了span在一次大的跟蹤過(guò)程中是什么樣的。Dapper記錄了span名稱(chēng),以及每個(gè)span的ID和父ID,以重建在一次追蹤過(guò)程中不同span之間的關(guān)系。如果一個(gè)span沒(méi)有父ID被稱(chēng)為root span。所有span都掛在一個(gè)特定的跟蹤上,也共用一個(gè)跟蹤id。

3.2 TRACE

類(lèi)似于樹(shù)結(jié)構(gòu)的Span集合,表示一次完整的跟蹤,從請(qǐng)求到服務(wù)器開(kāi)始,服務(wù)器返回response結(jié)束,跟蹤每次rpc調(diào)用的耗時(shí),存在唯一標(biāo)識(shí)trace_id。比如:你運(yùn)行的分布式大數(shù)據(jù)存儲(chǔ)一次Trace就由你的一次請(qǐng)求組成。

Trace

每種顏色的note標(biāo)注了一個(gè)span,一條鏈路通過(guò)TraceId唯一標(biāo)識(shí),Span標(biāo)識(shí)發(fā)起的請(qǐng)求信息。樹(shù)節(jié)點(diǎn)是整個(gè)架構(gòu)的基本單元,而每一個(gè)節(jié)點(diǎn)又是對(duì)span的引用。節(jié)點(diǎn)之間的連線(xiàn)表示的span和它的父span直接的關(guān)系。雖然span在日志文件中只是簡(jiǎn)單的代表span的開(kāi)始和結(jié)束時(shí)間,他們?cè)谡麄€(gè)樹(shù)形結(jié)構(gòu)中卻是相對(duì)獨(dú)立的。

3.3 Annotation

注解,用來(lái)記錄請(qǐng)求特定事件相關(guān)信息(例如時(shí)間),一個(gè)span中會(huì)有多個(gè)annotation注解描述。通常包含四個(gè)注解信息:

(1) cs:Client Start,表示客戶(hù)端發(fā)起請(qǐng)求

(2) sr:Server Receive,表示服務(wù)端收到請(qǐng)求

(3) ss:Server Send,表示服務(wù)端完成處理,并將結(jié)果發(fā)送給客戶(hù)端

(4) cr:Client Received,表示客戶(hù)端獲取到服務(wù)端返回信息

4、 方案比較

市面上的全鏈路監(jiān)控理論模型大多都是借鑒Google Dapper論文,主要是以下三種APM組件:

Zipkin:由Twitter公司開(kāi)源,開(kāi)放源代碼分布式的跟蹤系統(tǒng),用于收集服務(wù)的定時(shí)數(shù)據(jù),以解決微服務(wù)架構(gòu)中的延遲問(wèn)題,包括:數(shù)據(jù)的收集、存儲(chǔ)、查找和展現(xiàn)。

Pinpoint:一款對(duì)Java編寫(xiě)的大規(guī)模分布式系統(tǒng)的APM工具,由韓國(guó)人開(kāi)源的分布式跟蹤組件。

Skywalking:國(guó)產(chǎn)的優(yōu)秀APM組件,是一個(gè)對(duì)JAVA分布式應(yīng)用程序集群的業(yè)務(wù)運(yùn)行情況進(jìn)行追蹤、告警和分析的系統(tǒng)。

相比之下,Pinpoint 具有壓倒性的優(yōu)勢(shì):無(wú)需對(duì)項(xiàng)目代碼進(jìn)行任何改動(dòng)就可以部署探針、追蹤數(shù)據(jù)細(xì)?;椒椒ㄕ{(diào)用級(jí)別、功能強(qiáng)大的用戶(hù)界面以及幾乎比較全面的 Java 框架支持。


當(dāng)前名稱(chēng):詳解全鏈路監(jiān)控架構(gòu):目標(biāo)、功能模塊、Dapper和方案比較
標(biāo)題來(lái)源:http://uogjgqi.cn/article/djoiegp.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流