dubbo 啟動(dòng)時(shí)會(huì)出現(xiàn)多個(gè)IP
注冊(cè)中心配置的地址是127.0.0.1,但會(huì)出現(xiàn)另外一個(gè)ip
ping這個(gè)ip是ping通,但問網(wǎng)管卻沒有這個(gè)ip
然后通過ifconfig -a|grep {這個(gè)IP} 就出現(xiàn)在vmnetwork里,
這證明是虛擬機(jī)網(wǎng)卡ip
dubbo啟動(dòng)訂閱服務(wù)或暴露服務(wù)特別慢
dubbo注冊(cè)中心默認(rèn)緩存文件會(huì)上鎖
當(dāng)多個(gè)provider使用同一個(gè)注冊(cè)中心同時(shí)啟動(dòng)時(shí)會(huì)出現(xiàn)緩存文件上鎖,導(dǎo)致不能正常啟動(dòng),
默認(rèn)是從 ~/.dubbo/ 目錄下一個(gè)文件作為緩存文件,
需要為不同的provider 配置緩存文件位置,即:
<pre>
<dubbo:registry file="XXX" />
</pre>
dubbo telnet 調(diào)試
登錄到指定的provider
<pre>
telnet {provider所在ip} {provider的暴露端口}
e.g: telnet 127.0.0.1 2206
</pre>
查看當(dāng)前provider的服務(wù)
<pre>
ls
</pre>
查看指定服務(wù)的所有方法
<pre>
ls xxxService
</pre>
調(diào)用方法(具體怎么調(diào)用在查一下)
<pre>
invoke xxxService xxxx
</pre>
dubbo-admin 查看服務(wù)報(bào)404錯(cuò)誤
原因是服務(wù)分組名稱使用了ip地址作為分組名稱,改為非ip地址就可以了,或者換個(gè)分組名稱。
dubbo啟動(dòng)時(shí)非常慢
下面是在網(wǎng)上找到的其中一個(gè)描述
Zookeeper連接速度很慢,Dubbo初始化很慢,應(yīng)用啟動(dòng)很慢的問題
發(fā)現(xiàn)線下環(huán)境遷移到新機(jī)器后,應(yīng)用啟動(dòng)變得很慢,本來十幾秒啟動(dòng)的應(yīng)用,變成幾分鐘才能啟動(dòng)。
啟動(dòng)過程沒有報(bào)錯(cuò),只是Dubbo的注冊(cè)信息日志一直在比較慢地刷。
開始懷疑是網(wǎng)絡(luò)問題,但是檢查了iptables沒有開啟,用iptraf查看流量,也不高。機(jī)器的空閑內(nèi)存也足夠。
再檢查Zookeeper的配置,磁盤的空間,應(yīng)用的dubbo配置,jvm配置,發(fā)現(xiàn)都沒有問題。
沒辦法了,用jprofiler來測(cè)試下,發(fā)現(xiàn)“org.I0Itec.zkclient.ZkClient$1.call”,這個(gè)調(diào)用耗時(shí)比較大。
這樣確認(rèn)是zookeeper本身比較慢,不是應(yīng)用的問題。
用下面的zookeeper benchmark工具測(cè)試了下性能,發(fā)現(xiàn)read速度還可能,create/write速度非常慢,qps只有個(gè)位數(shù)。
于是問了下運(yùn)維的同事,原來新機(jī)器是用共享磁盤的,所以速度很慢。
而zookeeper每次write請(qǐng)求都要寫到log日志,并刷到磁盤里,所以非常的慢。
后來運(yùn)維的同事?lián)Q為本地磁盤,一切恢復(fù)正常。
http://blog.csdn.net/hengyunabc/article/details/19006911
而我發(fā)現(xiàn)的解決方法是:
如果是本地開發(fā)機(jī)器的話,那要把 源代碼項(xiàng)目 切換一下其他目錄,重新把源代碼check out 下來,重新編譯,最后運(yùn)行就可以了,不知道是為什么
如果這種方法不行,那換個(gè)zookeeper服務(wù)。
我這里用的是idea + maven 來調(diào)試的,有時(shí)候idea 啟動(dòng)dubbo服務(wù)的時(shí)候突然變得很慢,也是不知道為什么,可能跟idea 啟動(dòng)時(shí)的參數(shù)有關(guān)系,cd 到服務(wù)主程序jar目錄,并通過java -jar 的方式來運(yùn)行 跟idea運(yùn)行 的jar文件的話,又很快。。。所以后來重新導(dǎo)入一下項(xiàng)目,又可以了,估計(jì)是有一些文件可能生成了以后沒有清除掉。
另外還發(fā)現(xiàn)一個(gè)問題,突然變慢可能跟 debug 跟run 模式有關(guān)系,使用debug模式要30分鐘才能啟動(dòng)好,用run模式就跟普通 java -jar模式運(yùn)行差不多。
而且當(dāng)我用run模式跑了以后,再切換debug模式并且把所有斷點(diǎn)清除掉,就恢復(fù)正常了。
原來還以為是zookeeper有問題,在zookeeper發(fā)現(xiàn)日志:
Got user-level KeeperException when processing sessionid:0x15eadf1e4610001 type:create cxid:0x4fb zxid:0x6ba txntype:-1 reqpath:n/a Error Path:/dubbo Error:KeeperErrorCode = NodeExists for /dubbo
結(jié)果發(fā)現(xiàn)不是.........
找到了官方github 方法:
https://github.com/alibaba/dubbo/issues/885