文章出處

dubbo官方自帶了dubbo-admin及dubbo-simple/dubbo-monitor-simple二個子項目用于服務治理及服務監控。 

一、dubbo-admin的部署

這個比較簡單,編譯打包成功后,將dubbo-admin/target/dubbo-admin-2.8.xxx.war 復制到jetty、tomcat下的webapps就算完成部署了(當然,也可以部署到其它兼容的servlet容器,比如jboss、weblogic)

然后瀏覽:http://localhost:8080/dubbo-admin/ 會提示登陸用戶名、密碼,這是在配置文件里寫死的,配置文件的路徑為:

dubbo-admin/src/main/webapp/WEB-INF/dubbo.properties

dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

即用戶名、密碼均為root,登錄成功后,刷新下頁面,如果提示404之類的,退回到http://localhost:8080/瀏覽(這個跟部署的contextPath有關,如果contextPath設置為/dubbo-admin,刷新下就可以了,如果contextPath設置成/,則登錄后要退回/瀏覽)

dubbo的服務治理是其特色之一,管理界面如下:

點擊看大圖

 

二、dubbo-monitor-simple 部署

打包后,目錄dubbo-simple/dubbo-monitor-simple/target中會生成dubbo-monitor-simple-xxx-assembly.tar.gz,用tar -zxvf *.gz 解壓,解壓后有三個子目錄bin、conf、lib ,conf里面是配置文件:

dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
dubbo.jetty.port=8180
dubbo.jetty.directory=/data/dubbo/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log
dubbo.log4j.level=WARN

參考上面改,然后bin下有一個start.sh腳本,啟動即可,訪問后瀏覽http://localhost:8180 (端口號要跟配置里一致)

這是調用次數的統計  

點擊看大圖

這是圖表統計

點擊看大圖

這是服務之間的依賴關系

點擊看大圖

注:官網的監控是把所有監控數據(主要是統計數據和表圖數據)保存到服務器磁盤上的,運行時間久了,硬盤可能會撐滿,要注意及時清理(就是配置文件里面配置的3個目錄下)。監控數據也并非實時統計的,所以第1次部署成功后馬上去看統計數據,可能沒有,隨便跑一個service provider/service consumer的用例,然后等一會兒就行了。

 

三、dubbo-monitor-x

oschina有一個開源項目:http://git.oschina.net/handu/dubbo-monitor (為了與dubbox里的dubbo-monitor子項目名稱上分開,我在后面加了-x),其中的開發者『馬金凱』,也是dubbox的作者之一。

不過,這個版本好象有點bug,charts上圖表展示時會報錯,我跟了下代碼,是sql的問題,已經在個人fork的分支上修復,有興趣的可以參考。

點擊看大圖

點擊看大圖

注:與官網的監控存儲方案不同,dubbo-monitor-x是把數據保存在mysql里的,參考README.md很容易搞定部署。

此外,該版本還有一個mongodb的分支,見:dubbo-monitor-mongo (推薦使用)

 

四、dubbo keeper

這是托管在git上的項目,地址為:https://github.com/dubboclub/dubbokeeper,從github用戶信息上的郵箱后綴看,可能是阿里云的人發起的,與前面的項目不同,這個項目把管理+監控集成在一起了,而且存儲方案除了mysql,還支持mongodb,lucene,不過好象項目沒做完,只覆蓋了dubbo-admin官方功能的90%左右(比如:添加路由功能就沒有),如果這個項目逐漸完善了,個人覺得最有前途。

該項目部署略復雜:

4.1 如果決定用mysql存儲,先執行根目錄下的install-mysql.sh

4.2 然后在target目錄下,dubbokeeper/target/mysql-dubbokeeper-server/mysql-server/conf 修改這里面的配置

dubbo.application.name=mysql-monitor
dubbo.application.owner=bieber
dubbo.registry.address=zookeeper://localhost:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20884

monitor.collect.interval=100
#usered netty4
dubbo.provider.transporter=netty4

#mysql
dubbo.monitor.mysql.url=jdbc:mysql://default:3306/dubbokeeper
dubbo.monitor.mysql.username=root
dubbo.monitor.mysql.password=123456
dubbo.monitor.mysql.pool.max=10
dubbo.monitor.mysql.pool.min=10

主要是zk及mysql的連接信息,以及端口號,然后執行上一級目錄../bin下的start-mysql.sh 啟動監控數據的存儲服務(即:mysql-dubbokeeper-server本身就是一個dubbo服務,用于保存監控數據)

4.3 dubbokeeper/target/mysql-dubbokeeper-ui這個下面的war包扔到tomcat或jetty部署即可(這個才是真正的管理+監控 UI),如果啟動失敗,檢查 

dubbokeeper/dubbokeeper-ui/src/main/resources/dubbo.properties 配置是否正確,如果不對,改正確了,再重新打包部署。

這個項目可以很方便的看各項目的依賴關系圖。

點擊看大圖

以及每個服務的調用次數等信息,可惜沒有關鍵的QPS數據

點擊看大圖

 

問題:這幾套方案統計出來的數據,對于同樣的用例,都不一樣,也是醉了,不知道哪家的更準,看個人喜好吧。

下面推薦幾種搭配:

a: 官方的dubbo-admin + 韓都的dubbo-monitor-x 

b: 全官方的dubbo-admin + dubbo-monitor-simple

c: dubbokeeper 一套

監控服務,如果同時起多個dubbo-admin里會有警告,而且監控數據存多份也沒必要,所以不管怎么搭配,不要將dubbo-monitor-simple、dubbo-monitor-x、dubbokeeper同時部署在一個ZK注冊中心。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()