1. 程式人生 > >Dubbo剖析-監控平臺的搭建與使用

Dubbo剖析-監控平臺的搭建與使用

一、前言

dubbo-monitor主要用來統計服務的呼叫次調和呼叫時間的監控中心,服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心,監控中心則使用資料繪製圖表來顯示。

二、dubbo-monitor-simple的搭建

  • 在服務提供方和消費方需要配置如下:
    <dubbo:monitor protocol=”registry”/>
    protocol為”registry”,表示服務提供方和消費方從註冊中心發現監控中心(monitor)地址。
  • 解壓原始碼,進入dubbo-2.5.x 目錄,內容如下:
image.png

在該目錄執行mvn clean package -Dmaven.test.skip=true會生成如下結果:
[INFO] ————————————————————————
[INFO] Reactor Summary:
[INFO]
[INFO] dubbo-parent ……………………………….. SUCCESS [2.857s]
[INFO] Hessian Lite(Alibaba embed version) …………… SUCCESS [6.518s]
[INFO] dubbo-common ……………………………….. SUCCESS [7.706s]
[INFO] dubbo-container …………………………….. SUCCESS [0.057s]
[INFO] dubbo-container-api …………………………. SUCCESS [3.398s]
[INFO] dubbo-container-spring ………………………. SUCCESS [1.099s]
[INFO] dubbo-container-jetty ……………………….. SUCCESS [1.164s]
[INFO] dubbo-container-log4j ……………………….. SUCCESS [1.196s]
[INFO] dubbo-container-logback ……………………… SUCCESS [1.138s]
[INFO] dubbo-remoting ……………………………… SUCCESS [0.045s]
[INFO] dubbo-remoting-api ………………………….. SUCCESS [3.615s]
[INFO] dubbo-remoting-netty ………………………… SUCCESS [1.959s]
[INFO] dubbo-remoting-mina …………………………. SUCCESS [1.602s]
[INFO] dubbo-remoting-grizzly ………………………. SUCCESS [1.752s]
[INFO] dubbo-remoting-p2p ………………………….. SUCCESS [2.148s]
[INFO] dubbo-remoting-http …………………………. SUCCESS [2.154s]
[INFO] dubbo-remoting-zookeeper …………………….. SUCCESS [2.165s]
[INFO] dubbo-remoting-netty4 ……………………….. SUCCESS [2.721s]
[INFO] dubbo-rpc ………………………………….. SUCCESS [0.060s]
[INFO] dubbo-rpc-api ………………………………. SUCCESS [3.397s]
[INFO] dubbo-rpc-default …………………………… SUCCESS [3.278s]
[INFO] dubbo-rpc-injvm …………………………….. SUCCESS [1.706s]
[INFO] dubbo-rpc-rmi ………………………………. SUCCESS [1.373s]
[INFO] dubbo-rpc-hessian …………………………… SUCCESS [1.791s]
[INFO] dubbo-rpc-http ……………………………… SUCCESS [1.210s]
[INFO] dubbo-rpc-webservice ………………………… SUCCESS [1.816s]
[INFO] dubbo-cluster ………………………………. SUCCESS [2.690s]
[INFO] dubbo-registry ……………………………… SUCCESS [0.033s]
[INFO] dubbo-registry-api ………………………….. SUCCESS [2.548s]
[INFO] dubbo-monitor ………………………………. SUCCESS [0.020s]
[INFO] dubbo-monitor-api …………………………… SUCCESS [1.309s]
[INFO] dubbo-filter ……………………………….. SUCCESS [0.023s]
[INFO] dubbo-filter-validation ……………………… SUCCESS [1.474s]
[INFO] dubbo-filter-cache ………………………….. SUCCESS [1.395s]
[INFO] dubbo-registry-default ………………………. SUCCESS [1.402s]
[INFO] dubbo-monitor-default ……………………….. SUCCESS [1.258s]
[INFO] dubbo-registry-multicast …………………….. SUCCESS [1.336s]
[INFO] dubbo-config ……………………………….. SUCCESS [0.018s]
[INFO] dubbo-config-api ……………………………. SUCCESS [3.498s]
[INFO] dubbo-config-spring …………………………. SUCCESS [3.326s]
[INFO] dubbo-rpc-thrift ……………………………. SUCCESS [2.115s]
[INFO] dubbo-rpc-memcached …………………………. SUCCESS [1.476s]
[INFO] dubbo-rpc-redis …………………………….. SUCCESS [1.367s]
[INFO] dubbo-registry-zookeeper …………………….. SUCCESS [1.597s]
[INFO] dubbo-registry-redis ………………………… SUCCESS [2.111s]
[INFO] dubbo-plugin ……………………………….. SUCCESS [0.027s]
[INFO] dubbo-qos ………………………………….. SUCCESS [2.574s]
[INFO] dubbo ……………………………………… SUCCESS [2.662s]
[INFO] dubbo-simple ……………………………….. SUCCESS [0.017s]
[INFO] dubbo-registry-simple ……………………….. SUCCESS [5.246s]
[INFO] dubbo-monitor-simple ………………………… SUCCESS [11.301s]
[INFO] dubbo-admin ………………………………… SUCCESS [11.472s]
[INFO] dubbo-demo …………………………………. SUCCESS [0.034s]
[INFO] dubbo-demo-api ……………………………… SUCCESS [1.097s]
[INFO] dubbo-demo-provider …………………………. SUCCESS [1.892s]
[INFO] dubbo-demo-consumer …………………………. SUCCESS [1.473s]
[INFO] dubbo-test …………………………………. SUCCESS [0.022s]
[INFO] dubbo-test-benchmark ………………………… SUCCESS [5.324s]
[INFO] dubbo-test-compatibility …………………….. SUCCESS [0.017s]
[INFO] dubbo-test-spring3 ………………………….. SUCCESS [1.719s]
[INFO] dubbo-test-integration ………………………. SUCCESS [0.149s]
[INFO] dubbo-test-examples …………………………. SUCCESS [3.413s]
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 2:16.562s
[INFO] Finished at: Wed Mar 14 17:19:06 CST 2018
[INFO] Final Memory: 38M/654M
[INFO] ————————————————————————

進入/Users/zhuizhumengxiang/Downloads/dubbo-2.5.x/dubbo-simple/dubbo-monitor-simple/target
目錄,會發現生成了dubbo-monitor-simple-2.5.10-assembly.tar.gz:

image.png
  • 解壓dubbo-monitor-simple-2.5.10-assembly.tar.gz,修改進入dubbo-monitor-simple-2.5.10/conf/dubbo.properties:

其中dubbo.registry.address=zookeeper://127.0.0.1:2181設定註冊中心地址,這裡設定為zk的地址

其中dubbo.protocol.port=7070,為monitor提供的遠端服務監聽埠,服務提供者和消費者會呼叫這個埠提供的服務,傳送統計資訊到monitor

dubbo.charts.directory和dubbo.statistics.directory為monitor本地存放的監控資料檔案的位置

dubbo.jetty.port=8081 設定jetty容器的監聽地址,類似於tomcat的8080埠,這裡設定為8081

  • 進入dubbo-monitor-simple-2.5.10/bin,執行sh start.sh啟動monitor image.png

至此monitor啟動了訪問http://127.0.0.1:8081/ 會出現下面介面:

image.png

三、dubbo-monitor-simple的使用

3.1 應用程式檢視

3.2 服務檢視

image.png

3.3 註冊中心檢視

image.png

3.4 呼叫資料統計

image.png image.png

四、總結

dubbo-monitor也不是使用dubbo搭建分散式系統必須的元件,但是它用來統計服務的呼叫次調和呼叫時間的監控中心,這些資料有助於系統運維和調優。

歡迎大家加入知識星球,在知識星球裡面我們會深入討論Java併發程式設計,以及JUC包原始碼;Java類載入器原理;Spring,Springboot,Tomcat,Dubbo等開源框架的使用以及原始碼剖析;分享作者從畢業到現在一路走來的學習經驗,如何高效學習,如何閱讀原始碼;討論職業面試時候會經常遇到的問題以及如何作答,讀者可以識別下面二維碼加入:


加多

加多

高階 Java 攻城獅 at 阿里巴巴加多,目前就職於阿里巴巴,熱衷併發程式設計、ClassLoader,Spring等開源框架,分散式RPC框架dubbo,springcloud等;愛好音樂,運動。微信公眾號:技術原始積累。知識星球賬號:技術原始積累