dubbo和zookeeper的關系
簡單來說打個比方:dubbo就是動物園的動物,zookeeper是動物園。如果游客想看動物的話那么就去動物園看。比如你要看老虎,那么動物園有你才能看到。換句話說我們把很多不同的dubbo(動物)放到zookeeper(動物園中)提供給我們游客進行觀賞。這個過程中三個關鍵:場所、供給者、消費者。
1. Zookeeper的作用:
zookeeper用來注冊服務和進行負載均衡,哪一個服務由哪一個機器來提供必需讓調用者知道,簡單來說就是ip地址和服務名稱的對應關系。當然也可以 通過硬編碼的方式把這種對應關系在調用方業務代碼中實現,但是如果提供服務的機器掛掉調用者無法知曉,如果不更改代碼會繼續請求掛掉的機器提供服務。 zookeeper通過心跳機制可以檢測掛掉的機器並將掛掉機器的ip和服務對應關系從列表中刪除。至於支持高並發,簡單來說就是橫向擴展,在不更改代碼 的情況通過添加機器來提高運算能力。通過添加新的機器向zookeeper注冊服務,服務的提供者多了能服務的客戶就多了。
2. dubbo:
是管理中間層的工具,在業務層到數據倉庫間有非常多服務的接入和服務提供者需要調度,dubbo提供一個框架解決這個問題。
注意這里的dubbo只是一個框架(項目),至於你架子上放什么是完全取決於你的,就像一個汽車骨架,你需要配你的輪子引擎。這個框架中要完成調度必須要有一個分布式的注冊中心,儲存所有服務的元數據,你可以用zk,也可以用別的,只是大家都用zk。
zookeeper運行環境:
ZooKeeper服務器是用Java編寫創建,它運行在JVM。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
配置說明
1:文件下載:
zookeeper-3.4.8.tar.gz包,
jdk-7u80-linux-x64.tar.gz包,
apache-tomcat-7.0.68.tar.gz包,
dubbo-admin-2.5.3.war管理項目,
注意Zookeeper版本要與jdk版本兼容
2:通過Filezilla或別的工具連接Linux,並將以上下載的文件放入路徑/usr/local/tmp下
3:打開Xshell連接linux
跳轉:cd /usr/local/tmp
4:jdk及tomcat安裝配置:
解壓--->移動--->配置環境變量
tar zxvf jdk-7u80-linux-x64.tar.gz
cp -r jdk-7u80-linux-x64 ../jdk
tar zxvf apache-tomcat-7.0.68.tar.gz
cp -r apache-tomcat-7.0.68 ../tomcat
vim /etc/profile
在profile文件中配置jdk及Tomcat環境變量
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
:wq保存退出后使修改的文件生效
source /etc/profile
5:Zookeeper安裝配置
tar zxvf zookeeper-3.4.8.tar.gz
cp -r zookeeper-3.4.8 ../zookeeper
5.1 到zookeeper目錄創建一個data文件夾
cd /usr/local/zookeeper
mkdir data
5.2 在zookeeper下的conf目錄下復制一份zoo_sample.cfg並改為zoo.cfg
cp -r zoo_sample.cfg zoo.cfg
5.3 修改zoo.cfg配置文件中dataDir屬性為dataDir=/usr/local/zookeeper/data
vim zoo.cfg
dataDir=/usr/local/zookeeper/data
留意:clientPort=2181為zookeeper端口號
保存退出
6:設置防火牆放行2181及8080的端口(后面Tomcat啟動使用的是8080端口)
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
:wq回車
server iptables restart 重啟防火牆服務
7:啟動zookeeper服務
cd /usr/local/zookeeper/bin
./zkServer.sh start(查看啟動狀態./zkServer.sh status)
8:啟動Tomcat服務
cd /usr/local/tomcat/bin
./startup.sh
9:部署管理項目到Tomcat下
cd /usr/local/tmp
cp -r dubbo-admin-2.5.3.war ../tomcat/webapps
此時Tomcat會自動創建一個dubbo-admin-2.5.3文件夾
10:關閉Tomcat,刪除war包,將dubbo-admin-2.5.3改名為dubbo
[root@192 tmp]# ../tomcat/bin/shutdown.sh
cd ../tomcat/webapps
mv -r dubbo-admin-2.5.3 dubbo
11:修改項目的注冊中心地址
cd /usr/local/tomcat/webapps/WEB-INF
vim dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
:wq退出
12:重啟Tomcat,訪問dubbo管理項目地址
cd /usr/local/tomcat/bin
./startup.sh
http://192.168.48.130:8080/dubbo
用戶名密碼均為 root

