1、環境:git
Windows:github
IDE:IntelliJ IDEA 2017.1.1web
JDK:1.8.0_161spring
Maven:3.3.9apache
springboot:2.0.2.RELEASEvim
Linux(CentOS Linux release 7.2.1511 (Core)):tomcat
dubbo:dubbo-admin-2.0.0springboot
zookeeper:zookeeper-3.4.10bash
2、部署zookeeper(集羣方式)服務器
準備三臺機器或虛擬機,IP爲192.168.254.3(節點1)、192.168.254.4(節點2)、192.168.254.5(節點3)。
1.下載zookeeper-3.4.10.tar.gz
地址:http://mirror.bit.edu.cn/apache/zookeeper/
2.解壓zookeeper
解壓gz文件,在下載的zookeeper-3.4.10.tar.gz存放目下,執行tar -zxvf zookeeper-3.4.10.tar.gz,等待命令運行完成,則生成解壓後的目錄爲zookeeper-3.4.10,進入文件夾,文件列表以下。
設置zookeeper的安裝目錄爲/usr/local,則將解壓後的目錄文件夾移動到此,即執行mv zookeeper-3.4.10 /usr/local
3.安裝配置
(1)進入/usr/local/zookeeper/conf,複製zoo_sample.cfg文件的並命名爲 zoo.cfg
(2)編輯zoo.cfg
vim zoo.cfg
添加dataLogDir,設置日誌目錄;修改數據目錄dataDir。
zookeeper有三個重要端口,默認分別爲218一、288八、3888,分別是爲客戶端服務端口、集羣內部通訊端口、選舉leader使用端口。這三個端口能夠根據實際狀況自行修改,只要是端口未被其餘一個用佔用均可以使用,此處故意修改三個端口爲318一、1288八、13888。
修改完成後保存zoo.cfg。
(3)複製zookeeper-3.4.10目錄到其餘服務器
scp -r root@ zookeeper-3.4.10/ 192.168.254.4:/usr/local
scp -r root@ zookeeper-3.4.10/ 192.168.254.5:/usr/local
若是直接複製須要輸入其餘機器賬戶密碼,則須要在集羣機器之間配置SSH免密登陸。
(4)集羣各節點配置myid
將zookeeper目錄複製到集羣各節點後,按照上面zoo.cfg中配置的dataDir、dataLogDir中配置的實際路徑,在zookeeper-3.4.10根目錄下創建data、logs目錄(mkdir data、mkdir logs)。
配置後,在集羣節點1進入data目錄,創建myid文件,並在文件中輸入1,保存
節點1(192.168.254.3)
同理在集羣節點二、節點3中分別進入data目錄,創建myid文件,在文件中分別輸入二、3,保存。
節點1(192.168.254.4)
節點1(192.168.254.5)
這裏各節點myid文件中設置的數字,與zoo.cfg中配置集羣節點的數字對應。
(5)集羣節點啓動和驗證
在節點1,啓動集羣# ./bin/zkServer.sh start
一樣,在節點二、節點3啓動zookeeper。
在三個節點都啓動完成後,分別查看狀態:
節點1: ./bin/zkServer.sh status
節點2: ./bin/zkServer.sh status
節點3: ./bin/zkServer.sh status
能夠看出,集羣節點啓動後,節點2被選舉爲leader。
對於集羣,也能夠經過編寫腳本批量一鍵啓動集羣節點。
在任意一個節點zookeeper的安裝目錄下,新建zkBatchServer.sh,打開並編寫以下內容:
#!/bin/bash #參數傳遞 usage="Usage: $0 (start|stop|status)" if [ $# -lt 1 ]; then echo $usage exit 1 fi behave=$1 echo "$behave zkServer cluster" #主機名稱 SERVERS="master1-hadoop master2-hadoop slave1-hadoop" for SERVER in $SERVERS do #使用ssh進行啓動 echo "當前"$SERVER "正在"$behave"-----------------------" ssh root@$SERVER "source /etc/profile; /usr/local/zookeeper-3.4.10/bin/zkServer.sh $behave" echo $SERVER $behave "結束------------------------------" done
設置完後,修改權限 chmod u+x zkBatchServer.sh
zookeeper目錄文件以下
批量啓動集羣
# ./zkBatchServer.sh start
啓動後,查看集羣節點狀態
# ./zkBatchServer.sh status
(6)鏈接ZooKeeper的集羣
經過192.168.254.3鏈接zookeeper集羣,
# ./bin/zkCli.sh -r -server 192.168.254.3:3181
上面是經過zkCli.sh鏈接指定的節點ip和端口鏈接到zookeeper集羣。
2、部署dubbo
(1)下載編譯
dubbo項目地址https://github.com/apache/incubator-dubbo,最新的源碼項目爲2.6.2,不過從2.6.1後dubbo-admin已經被分離出去了,所以要部署dubbo-admin則需在 https://github.com/apache/incubator-dubbo-ops下載 。
下載解壓後,進入項目錄下(即incubator-dubbo-ops-master),項目工程結構以下
打開dubbo-admin\src\main\webapp\WEB-INF下的dubbo.properties,內容爲:
dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest
將註冊中心的地址更改成上面配置的zookeeper集羣的地址,即
dubbo.registry.address=zookeeper://192.168.254.3:3181?backup=192.168.254.4:3181,192.168.254.5:3181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest
導入項目到idea
或直接在項目目錄控制檯執行命令:mvn package -Dmaven.skip.test=true
執行成功後,進入incubator-dubbo-ops-master\dubbo-admin\target目錄,
(2)安裝dubbo-admin
將上面生成的war包拷貝到tomcat的webapps目錄
啓動tomcat後,自動解壓war,生成項目目錄
經過URL便可訪問dubbo-admin
http://192.168.254.3:8686/dubbo-admin-2.0.0/
登陸用戶名密碼參考dubbo.properties,其裏面配置的兩個帳戶,每一個帳戶的用戶名與密碼同樣
登陸後能夠看到管理界面以下
這篇主要學習了一下結成dubbo的環境配置,爲真正集成應用作一些準備工做,下篇經過具體的代碼實例學習編寫服務如何註冊、調用。