Dubbo高階(七) Dubbo服務管理和監管

2021-08-19 13:35:24 字數 4131 閱讀 8491

dubbo官方自帶了dubbo-admin及dubbo-******/dubbo-monitor-******二個子專案用於服務治理服務監控

然後瀏覽:http://localhost:8080/dubbo-admin/會提示登陸使用者名稱、密碼,這是在配置檔案裡寫死的,配置檔案的路徑為:

dubbo.registry.address=zookeeper

:dubbo.admin.root.password=root

dubbo.admin.guest.password=guest

即使用者名稱、密碼均為root,登入成功後,重新整理下頁面,如果提示404之類的,退回到http://localhost:8080/瀏覽(這個跟部署的contextpath有關,如果contextpath設定為/dubbo-admin,重新整理下就可以了,如果contextpath設定成/,則登入後要退回/瀏覽)。

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

源專案打包後,目錄dubbo-******/dubbo-monitor-******/target中會生成dubbo-monitor-******-***-assembly.tar.gz,用tar -zxvf *.gz解壓,解壓後有三個子目錄binconflibconf裡面是配置檔案:

dubbo.container=log4j,spring,registry,jetty

dubbo.registry.address=zookeeper:

dubbo.protocol.port=7070

dubbo.jetty.port=8180

dubbo.jetty.directory=/data/dubbo/monitor

dubbo.charts.directory=$

/charts

dubbo.statistics.directory=$

/monitor/statistics

dubbo.log4j.file=logs/dubbo-monitor-******.log

dubbo.log4j.level=warn

參考上面改,然後bin下有乙個start.sh指令碼,啟動即可,訪問後瀏覽http://localhost:8180(埠號要跟配置裡一致)

服務呼叫次數的統計:

服務之間的依賴關係:

注1:官網的監控是把所有監控資料(主要是統計資料和表圖資料)儲存到伺服器磁碟上的,執行時間久了,硬碟可能會撐滿,要注意及時清理(就是配置檔案裡面配置的3個目錄下)。

注2:監控資料也並非實時統計的,所以第1次部署成功後馬上去看統計資料,可能沒有,隨便跑乙個service provider/service consumer的用例,然後等一會兒就可以了。

oschina上的開源專案,(為了與dubbox裡的dubbo-monitor子專案名稱上分開,在後面加了-x),其中的開發者『馬金凱』,也是dubbox的作者之一。

不過,這個版本好象有點bugcharts上圖表展示時會報錯,通過跟**,發現是sql的問題,已經在個人fork的分支上修復,有興趣的可以參考。

注:與官網的監控儲存方案不同,dubbo-monitor-x是把資料儲存在mysql裡的,參考readme.md很容易搞定部署。

這是託管在git上的開源專案,從github使用者資訊上的郵箱字尾看,可能是阿里雲的人發起的,與前面的專案不同,這個專案把管理+監控整合在一起了,而且儲存方案除了mysql,還支援mongodblucene,不過好像專案沒做完,只覆蓋了dubbo-admin官方功能的90%左右(比如:新增路由功能就沒有),如果這個專案逐漸完善了,個人覺得最有前途。

不過,該專案部署略複雜:

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

然後在target目錄下,dubbokeeper/target/mysql-dubbokeeper-server/mysql-server/conf修改如下配置資訊:

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

主要是zkmysql的連線資訊,以及埠號,然後執行上一級目錄../bin下的start-mysql.sh啟動監控資料的儲存服務(即:mysql-dubbokeeper-server本身就是乙個dubbo服務,用於儲存監控資料)。

dubbokeeper/target/mysql-dubbokeeper-ui這個下面的war包扔到tomcatjetty部署即可(這個才是真正的管理+監控 ui),如果啟動失敗,檢查dubbokeeper/dubbokeeper-ui/src/main/resources/dubbo.properties配置是否正確,如果不對,改正確了,再重新打包部署。

這個專案可以很方便的看各項目的依賴關係圖,以及每個服務的呼叫次數等資訊,可惜沒有關鍵的qps資料。

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

如果同時起多個監控服務,dubbo-admin裡會有警告,而且監控資料存多份也沒必要,所以不管怎麼搭配,不要將dubbo-monitor-******dubbo-monitor-xdubbokeeper同時部署在乙個zk註冊中心。

Dubbo高階篇 12 dubbo服務只註冊

問題 如果有兩個映象環境,兩個註冊中心,有乙個服務只在其中乙個註冊中心有部署,另乙個註冊中心還沒來得及部署,而兩個註冊中心的其它應用都需要依賴此服務,所以需要將服務同時註冊到兩個註冊中心,但卻不能讓此服務同時依賴兩個註冊中心的其它服務。解決方案 可以讓服務提供者方,只註冊服務到另一註冊中心,而不從另...

dubbo 支援服務降級嗎 Dubbo服務降級

一 簡介 解決高併發的三把利器 降級 限流 快取 1 什麼是服務降級 服務降級,當伺服器壓力劇增的情況下,根據當前業務情況及流量對一些服務有策略的降低服務級別,以釋放伺服器資源,保證核心任務的正常執行 2 服務降級方式 能夠實現服務降級方式很多,常見的有如下幾種情況 部分服務暫停 全部服務暫停 隨機...

dubbo服務集群

容錯配置 集權容錯模式 1 failover cluster 失敗自動切換,當出現失敗,重試其他伺服器。通常用於讀操作,但重試會帶來更長延遲。可通過retries 2來設定重試次數 不含第一次 如果沒有配置,預設使用這種方式,並且重試次數是2 retries 2 或者retries 2 或者 nam...