使用Cat斷斷續(xù)續(xù)將近兩周的時(shí)間,感覺它還算是很輕量級(jí)的。文檔相對(duì)來(lái)說薄弱一些,沒有太全面的官方文檔(官方文檔大多是介紹每個(gè)名詞是什么意思,界面是什么意思,部署方面比較欠缺);但是好在有一個(gè)非?;钴S的群,群里有很多經(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)無(wú)法支撐了。于是開始切分系統(tǒng),把系統(tǒng)拆分成幾個(gè)獨(dú)立的模塊,模塊之間采用遠(yuǎn)程調(diào)用的方式進(jìn)行通信。
那么遠(yuǎn)程調(diào)用是如何做到的呢?下面就用最古老的RMI的方式來(lái)舉個(gè)例子吧!
RMI(Remote method invocation)是java從1.1就開始支持的功能,它支持跨進(jìn)程間的方法調(diào)用。
大體上的原理可以理解為,服務(wù)端會(huì)持續(xù)監(jiān)聽一個(gè)端口??蛻舳送ㄟ^proxy代理的方式遠(yuǎn)程調(diào)用服務(wù)端。即客戶端會(huì)把方法的參數(shù)以字符串的的方式序列化傳給服務(wù)端。服務(wù)端反序列化后調(diào)用本地的方法執(zhí)行,執(zhí)行結(jié)果再序列化返回給客戶端。
服務(wù)端的代碼可以參考如下:
網(wǎng)友評(píng)論