Dubbo工具——dubbo-monitor監控平台的發布和使用
1)下載
https://github.com/alibaba/dubbo/archive/dubbo-2.5.8.zip
2)編譯
cmd中進入解壓后的目錄,然后運行mvn install。然后到E:\incubator-dubbo-dubbo-2.5.8\dubbo-simple\dubbo-monitor-simple\target目錄下復制出dubbo-monitor-simple-2.5.8-assembly.tar.gz到e:/,然后解壓該文件,得到如下目錄:

bin目錄存放啟動、關閉等命令。
conf配置文件。
lib依賴包。
- 配置
1)dubbo-monitor端配置

2)provider端配置
<dubbo:monitor protocol="registry"/>
- consumer端配置
<dubbo:monitor protocol="registry"/>
這樣,在 provider、consumer運行的時候,通過該標簽,會到注冊中心找到dubbo-monitor這個服務。
4)啟動dubbo-monitor之前dubbo-admin中的服務列表


- 運行測試
1)啟動和關閉
到dubbo-monitor-home/bin,運行start.cmd即可啟動成功,並且看到了logs目錄。然后到dubbo-admin下再次查看服務列表,比剛才多了一個服務,如圖:

2)執行原理分析
參見dubbo結構圖,dubbo-monitor啟動后,原來的provider和consumer相對於monitor來說,都變成了消費者。因為他們都調用了MonitorService接口服務,每分鍾調用一次,將這一分鍾內產生的數據發送給monitor。啟動程序並調用后這時顯示MonitorServie服務為正常。

3)訪問dubbo-monitor
主要熟悉統計圖頁面。
4.備注
1)配置的注冊中心要和被統計的provider/consumer是同一個注冊中心
2)monitor和dubbo-admin一樣,宕機不影響業務系統的運行,建議正式環境跟業務系統分開運行,因為其中一個系統配置出錯會影響另外一個系統的啟動。
3)如果provider、consumer、dubbo-monitor不在同一台機器,dubbo-monitor配置中的7070端口需要開啟。
4)monitor宕機后,provider和consumer這兩個服務仍然在每隔一分鍾發送一次消息,導致后台報異常,雖然沒有影響業務運行,如何在monitor宕機后自動不發統計信息?重啟consumer即可,不必注銷<dubbo:monitor protocol="registry"/>。
5.作業錯誤
1)部署dubbo-monitor到ecs,啟動時一直如下所示:

原因:
a. dubbo-monitor的dubbo.properties配置了jetty端口為8081,結果跟tomcat集群中的端口沖突了;
b. 修改start.sh中的以下內容,因為我們的ECS都是1G內存的


c. 有其他方面的沖突,檢查其他應用的端口等是否有沖突,例如tomcat本身就占N個端口。從這里也可以看出,在正是環境中,一定要分開機器運行這些服務。
2)dubbo-monitor中的統計圖無法顯示,顯示的都是小叉,但是目錄下有png圖片


修改dubbo-monitor/conf/dubbo.properties中的內容,如上圖所示,必須保證charts和statistics目錄在monitor下面。
3)無法生成png圖片
目錄用的是絕對路徑,配置也正確,但是無法生成png圖片,可能的原因有:
a. 看看你的配置文件項dubbo.jetty.directory這個文件夾到底存不存在,默認不會自動給你創建的;
b. 確保生產者/消費者中的spring.xml有<dubbo:monitor protocol="registry"/>;
c. 如果以上2點確保正確,還是出現問題,建議改回之前的${user.home}配置方式,使用默認的${user.home}配置方式會在bin目錄中生成統計圖。
(下期見)

獲取更多資源請關注微信公眾號:AKA程序王
