Cat是美團(tuán)點評出的一款A(yù)PM工具,同類的產(chǎn)品也有不少,知名的開源產(chǎn)品如zipkin和pinpoint;國內(nèi)收費的產(chǎn)品如oneapm。考慮到Cat在互聯(lián)網(wǎng)公司的應(yīng)用比較廣,因此被納入選型隊列,我也有幸參與技術(shù)預(yù)言。
使用Cat斷斷續(xù)續(xù)將近兩周的時間,感覺它還算是很輕量級的。文檔相對來說薄弱一些,沒有太全面的官方文檔(官方文檔大多是介紹每個名詞是什么意思,界面是什么意思,部署方面比較欠缺);但是好在有一個非?;钴S的群,群里有很多經(jīng)驗豐富的高手,不會的問題基本都能得到解答。
下面就開始步入正題吧,本篇主要講述一下如何利用Cat進(jìn)行分布式的調(diào)用鏈追蹤。
分布式開發(fā)基礎(chǔ)
在最開始網(wǎng)站基本都是單節(jié)點的,由于業(yè)務(wù)逐漸發(fā)展,使用者開始增多,單節(jié)點已經(jīng)無法支撐了。于是開始切分系統(tǒng),把系統(tǒng)拆分成幾個獨立的模塊,模塊之間采用遠(yuǎn)程調(diào)用的方式進(jìn)行通信。
那么遠(yuǎn)程調(diào)用是如何做到的呢?下面就用最古老的RMI的方式來舉個例子吧!
RMI(Remote method invocation)是java從1.1就開始支持的功能,它支持跨進(jìn)程間的方法調(diào)用。