<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综合| 亚洲免费观看网站| 国产黄在线观看免费观看不卡| 亚洲中文无码mv| 亚洲精品自在线拍| 久久精品国产亚洲沈樵| 亚洲AV无码成H人在线观看| 两性刺激生活片免费视频| 中文字幕无码一区二区免费| 免费无码午夜福利片| 亚洲最大的成人网站| 亚洲精品视频在线观看免费| 久久影视国产亚洲| 又粗又大又硬又爽的免费视频| 99在线精品视频观看免费| 永久免费A∨片在线观看| 一区二区三区在线免费| 久久精品国产亚洲av天美18| 亚洲卡一卡二卡乱码新区| 亚洲国产综合精品| 亚洲福利视频网址| 久久亚洲国产成人精品性色| 久久亚洲成a人片| 亚洲国产成人一区二区三区| 日韩亚洲变态另类中文| 亚洲男人天堂2020| 亚洲色一色噜一噜噜噜| 成人亚洲网站www在线观看| 国产人成免费视频| 国产在线播放免费| 又爽又高潮的BB视频免费看| 免费永久在线观看黄网站| 日韩免费视频播放| 国产精品深夜福利免费观看| 国产美女无遮挡免费视频| 免费观看国产小粉嫩喷水| 免费一级毛片不卡在线播放| 亚洲国产黄在线观看| 亚洲一区二区三区免费| 在线亚洲精品福利网址导航|