<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22, comments - 32, trackbacks - 0, articles - 73
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    整體架構(gòu)

    從日志生成到抓取、存儲(chǔ)、分析、展現(xiàn)的多個(gè)系統(tǒng)間交互過(guò)程。


    image

    EagleEye 的核心

    • TraceId
    在復(fù)雜的分布式系統(tǒng)環(huán)境下,EagleEye是一個(gè)有廣泛用途的調(diào)用分析和問(wèn)題排查工具。與一般的調(diào)用信息埋點(diǎn)日志相比,EagleEye埋點(diǎn)的一個(gè)顯著的不同點(diǎn)在于它的每條日志都有與每次請(qǐng)求關(guān)聯(lián)的上下文ID,我們稱(chēng)為T(mén)raceId。通過(guò)TraceId,后期的日志處理時(shí)可以把一次前端請(qǐng)求在不同服務(wù)器記錄的調(diào)用日志關(guān)聯(lián)起來(lái),重新組合成當(dāng)時(shí)這個(gè)請(qǐng)求的調(diào)用鏈。因此,EagleEye不僅可以分析到應(yīng)用之間的直接調(diào)用關(guān)系,還可以得到他們的間接調(diào)用關(guān)系、以及上下游的業(yè)務(wù)處理信息;對(duì)于調(diào)用鏈的底層系統(tǒng),可以追溯到它的最上層請(qǐng)求來(lái)源以及中間經(jīng)過(guò)的所有節(jié)點(diǎn);對(duì)于調(diào)用鏈的上層入口,可以收集到它的整棵調(diào)用樹(shù),從而定位下游系統(tǒng)的處理瓶頸,當(dāng)下游某個(gè)應(yīng)用有異常發(fā)生時(shí),能迅速定位到問(wèn)題發(fā)生的位置。

    image

    如上圖所示,應(yīng)用A是接受到來(lái)自用戶(hù)瀏覽器的Web請(qǐng)求的前端服務(wù)器,它是一條調(diào)用鏈的開(kāi)始端,在TBSession和EagleEyeFilter中都做了EagleEye上下文埋點(diǎn)。請(qǐng)求收到后它會(huì)先調(diào)用EagleEye StartTrace生成TraceId并放置在當(dāng)前線程的ThreadLocal,日志埋點(diǎn)請(qǐng)求信息(如URL、SessionId、UserId等)。在請(qǐng)求處理完畢提交相應(yīng)時(shí),再調(diào)用EndTrace清理線程中的EagleEye信息。 在應(yīng)用A調(diào)用應(yīng)用B、C的HSF服務(wù),或者發(fā)送Notify消息時(shí),TraceId被包含在EagleEye上下文中,隨網(wǎng)絡(luò)請(qǐng)求到達(dá)應(yīng)用B、C、D、E之中,并放置在線程ThreadLocal內(nèi),因此后續(xù)調(diào)用到的這些系統(tǒng)都會(huì)有EagleEye這次請(qǐng)求的上下文。這些系統(tǒng)再發(fā)起網(wǎng)絡(luò)請(qǐng)求時(shí),也類(lèi)似的攜帶了上下文信息的。

    • RpcId

    為了區(qū)別同一個(gè)調(diào)用鏈下多個(gè)網(wǎng)絡(luò)調(diào)用的順序和嵌套層次,EagleEye還需要傳輸和記錄RpcId。 RpcId用0.X1.X2.X3.....Xi來(lái)表示,Xi都是非負(fù)整數(shù),根節(jié)點(diǎn)的RpcId固定從0開(kāi)始,第一層網(wǎng)絡(luò)調(diào)用的RpcId是0.X1,第二層的則為0.X1.X2,依次類(lèi)推。*例如,從根節(jié)點(diǎn)發(fā)出的調(diào)用的RpcId是0.1、0.2、0.3,RpcId是0.1的節(jié)點(diǎn)發(fā)出的RpcId則為0.1.1、0.1.2、0.1.3。如下圖所示

    image


    通過(guò)RpcId,可以準(zhǔn)確的還原出調(diào)用鏈上每次調(diào)用的層次關(guān)系和兄弟調(diào)用之間的先后順序。 例如上圖應(yīng)用 G 的兩次調(diào)用0.2.1.1和0.1.2.1,可以看出對(duì) DB 的訪問(wèn)0.2.1.1源于 C 到 G 的調(diào)用0.2.1,對(duì) Tair 的訪問(wèn)0.1.2.1源于B 到 G 的調(diào)用0.1.2。 很多調(diào)用場(chǎng)景會(huì)比上面說(shuō)的完全同步的調(diào)用更為復(fù)雜,比如會(huì)遇到異步、單向、廣播、并發(fā)、批處理等等,這時(shí)候需要妥善處理好ThreadLocal上的調(diào)用上下文,避免調(diào)用上下文混亂和無(wú)法正確釋放。另外,采用多級(jí)序號(hào)的RpcId設(shè)計(jì)方案會(huì)比單級(jí)序號(hào)遞增更容易準(zhǔn)確還原當(dāng)時(shí)的調(diào)用情況。



    主站蜘蛛池模板: 免费国产高清毛不卡片基地| 久久精品国产亚洲av品善| igao激情在线视频免费| 亚洲精品国产精品国自产观看| 特级毛片A级毛片100免费播放| 国产大片51精品免费观看| 国产精品亚洲综合网站| 亚洲国产精品成人久久蜜臀| 男人扒开添女人下部免费视频| 亚洲一区二区高清| a在线观看免费网址大全| 亚洲国产成人久久综合一| 18禁无遮挡无码国产免费网站| 亚洲校园春色小说| 日本成人在线免费观看| 亚洲a无码综合a国产av中文| 亚洲精品国产日韩无码AV永久免费网| 国产99久久久国产精免费| 亚洲成AV人片在| 久久精品网站免费观看| mm1313亚洲国产精品无码试看| 亚洲伊人久久成综合人影院| 18禁超污无遮挡无码免费网站| 亚洲精品在线免费看| 免费羞羞视频网站| 国产精品免费久久| 亚洲毛片在线观看| 免费观看大片毛片| 曰批全过程免费视频在线观看无码| 97久久精品亚洲中文字幕无码| 日韩在线看片免费人成视频播放| 国产免费福利体检区久久| 在线观看亚洲人成网站| 国产成人免费片在线观看| 好猛好深好爽好硬免费视频| 亚洲一级毛片在线播放| 国产亚洲精品线观看动态图| 四虎成年永久免费网站| 免费人人潮人人爽一区二区| 91精品国产亚洲爽啪在线观看| 免费人成在线观看视频播放|