dubbo 中包含下面4個核心組件: 生產者、消費者、注冊中心、監控中心。
簡單部署的模塊關系
生產者、消費者
最簡版本的Dubbo部署只運行Demo Provider和Demo Consumer,它們缺省配置為通過Multicast注冊中心廣播互相發現。
在這種情況下,建議在不同機器上運行,如果在同一機器上,需設置unicast=false:即:multicast://224.5.6.7:1234?unicast=false,否則發給消費者的單播消息可能被提供者搶占,兩個消費者在同一台機器也一樣,只有multicast注冊中心有此問題。
監控中心
為了更好的看到相關情況,我們需要增加運行Simple Monitor監控中心,它缺省配置為通過Multicast注冊中心廣播發現Provider和Consumer,並展示出它們的依賴關系,以及它們之間調用的次數和時間。
注冊中心
Multicast注冊中心不需要單獨部署一套應用,注冊中心這里也可以將Multicast注冊中心換成Zookeeper注冊中心,安裝Zookeeper Registry后,修改Demo Proivder,Demo Consumer,Simple Monitor三者安裝目錄下的conf/dubbo.properties,將dubbo.registry.address的值改為zookeeper://127.0.0.1:2181,同理,如果換成Redis Registry,值改為redis://127.0.0.1:6379,如果換成Simple Registry,值改為dubbo://127.0.0.1:9090
注意:multicast地址不能配成127.0.0.1,也不能配成機器的IP地址,必須是D段廣播地址,也就是:224.0.0.0到239.255.255.255之間的任意地址
參考: http://dubbo.io/Administrator+Guide-zh.htm
生產者的部署
生產者編譯后的部署文件在 github/alibaba/dubbo/dubbo-demo/dubbo-demo-provider/target 目錄下的dubbo-demo-provider-2.5.4-SNAPSHOT-assembly.tar.gz 文件。
解壓縮這個文件 ,並進入這個目錄
tar zxvf dubbo-demo-provider-2.5.4-SNAPSHOT.tar.gz
cd dubbo-demo-provider-2.5.4-SNAPSHOT
配置
vim conf/dubbo.properties
由於是最簡方式測試,我們都放在一台機器上,
- 啟動 ./bin/start.sh
- 停止 ./bin/stop.sh
- 重啟 ./bin/restart.sh
- 調試 ./bin/start.sh debug
- 系統狀態: ./bin/dump.sh
- 標准輸出: tail -f logs/stdout.log
總控入口
./bin/server.sh start
./bin/server.sh stop
./bin/server.sh restart
./bin/server.sh debug
./bin/server.sh dump
./bin/start.sh
Starting the demo-provider ......OK!
PID: 5683
STDOUT: logs/stdout.log
消費者部署也類似。
修改注冊中心地址配置
我們這里例子中,注冊中心是用的multicast注冊中心,相關的配置為:multicast://224.5.6.7:1234
有關廣播注冊中心的信息請看這篇博客: http://www.cnblogs.com/ghj1976/p/5276452.html
由於生產者、消費者、監控中心都是部署在一台機器的,我們整個廣播是對應的下面這個虛擬網卡進行數據交換的(ifconfig中讀取的配置信息):
vnic1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:1c:42:00:00:09
inet 10.37.129.2 netmask 0xffffff00 broadcast 10.37.129.255
media: autoselect
status: active
服務提供者配置
消費者配置
簡單監控中心配置
網絡監控
生產者、消費者部署在一台機器, 使用 multicast://224.5.6.7:1234?unicast=false 配置, 通過wireshark的 Loopback 監控如下圖:
過濾條件 tcp.port==20880 || tcp.port == 57450
使用這兩個端口是因為在dubbo的日志中,打出的就是使用的這兩個端口:
Dubbo 簡單監控中心
dubbo 自帶的監控中心,安裝方法類似於生產者的部署, 請參考: http://blog.csdn.net/liwf_/article/details/39053601
我這里安裝的是自行編譯的 dubbo-monitor-simple-2.5.4-SNAPSHOT
參考資料:
http://dubbo.io/Administrator+Guide-zh.htm
http://dubbo.io/Installation+Tutorial-zh.htm
http://blog.javachen.com/2014/09/24/compile-and-test-dubbo.html