使用Cat斷斷續(xù)續(xù)將近兩周的時間,感覺它還算是很輕量級的。文檔相對來說薄弱一些,沒有太全面的官方文檔(官方文檔大多是介紹每個名詞是什么意思,界面是什么意思,部署方面比較欠缺);但是好在有一個非?;钴S的群,群里有很多經(jīng)驗豐富的高手,不會的問題基本都能得到解答。
下面就開始步入正題吧,本篇主要講述一下如何利用Cat進行分布式的調用鏈追蹤。
分布式開發(fā)基礎
在最開始網(wǎng)站基本都是單節(jié)點的,由于業(yè)務逐漸發(fā)展,使用者開始增多,單節(jié)點已經(jīng)無法支撐了。于是開始切分系統(tǒng),把系統(tǒng)拆分成幾個獨立的模塊,模塊之間采用遠程調用的方式進行通信。
那么遠程調用是如何做到的呢?下面就用最古老的RMI的方式來舉個例子吧!
RMI(Remote method invocation)是java從1.1就開始支持的功能,它支持跨進程間的方法調用。
大體上的原理可以理解為,服務端會持續(xù)監(jiān)聽一個端口。客戶端通過proxy代理的方式遠程調用服務端。即客戶端會把方法的參數(shù)以字符串的的方式序列化傳給服務端。服務端反序列化后調用本地的方法執(zhí)行,執(zhí)行結果再序列化返回給客戶端。
服務端的代碼可以參考如下:
網(wǎng)友評論