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