溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

zookeeper+dubbo-admin

發(fā)布時(shí)間:2020-06-11 22:10:36 來(lái)源:網(wǎng)絡(luò) 閱讀:255 作者:wjw555 欄目:系統(tǒng)運(yùn)維

zookeeper 安裝部署:

官網(wǎng)下載地址:

https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz

zookeeper支持兩種運(yùn)行模式:獨(dú)立模式(standalone)和復(fù)制模式(replicated)
真正用于生產(chǎn)環(huán)境的Zookeeper肯定都是使用復(fù)制模式的,這樣做可以避免單點(diǎn)問(wèn)題。想要使用復(fù)制模式,但由于沒(méi)有富余的機(jī)器能夠使用,
所以可以在單臺(tái)機(jī)器上通過(guò)配置來(lái)使用復(fù)制模式,從而模擬真實(shí)的集群環(huán)境。
由于Zookeeper集群是通過(guò)多數(shù)選舉的方式產(chǎn)生leader的,因此,集群需要奇數(shù)個(gè)Zookeeper實(shí)例組成,也就是說(shuō)至少需要3臺(tái)

演示環(huán)境說(shuō)明:

ucloud 云主機(jī)
系統(tǒng)是CentOS6.5 x86_64位

一、zookeeper介紹和安裝:

下面的鏈接是介紹:
https://yq.aliyun.com/articles/638031?spm=a2c4e.11153940.0.0.2d9713d4u8uZMC

開(kāi)始安裝:
1.下載的zookeeper 版本是apache-zookeeper-3.5.5-bin.tar.gz

2.準(zhǔn)備java環(huán)境:
由于apache-zookeeper是基于java環(huán)境的,所以要提前部署jdk
此次ucloud 云主機(jī)部署的jdk版本是jdk-8u172-linux-x64.tar.gz

tar xf jdk-8u172-linux-x64.tar.gz -C /usr/local/
ln -sv /usr/local/jdk1.8.0_172/bin/java /sbin/java

路徑加入環(huán)境變量:


tail -4 /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_172
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

3.下載zookeeper軟件包

https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz

提示: zookeeper包從3.5版本開(kāi)始二進(jìn)制的安裝開(kāi)始發(fā)生變化,需要下載帶bin的二進(jìn)制包,解壓后才可以用,而不再是下載apache-zookeeper-3.5.5.tar.gz 這樣的包

4.解壓apache-zookeeper-3.5.5-bin.tar.gz

tar xf /root/apache-zookeeper-3.5.5-bin.tar.gz -C /usr/local/
cd /usr/local/
mv apache-zookeeper-3.5.5-bin zookeeper01  
cp  -rp zookeeper01  zookeeper02
cp -rp zookeeper01    zookeeper03

將zookeeper-3.5.5這個(gè)目錄copy三份,代表著3個(gè)實(shí)例。

然后,分別創(chuàng)建zoo.conf配置文件,放在對(duì)應(yīng)實(shí)例下的conf/目錄下,文件內(nèi)容如下:

[root@10-13-125-123 ~]# egrep -v '^#|^$' /usr/local/zookeeper01/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zkdata/zookeeper01
clientPort=32181
server.1=127.0.0.1:2878:4880
server.2=127.0.0.1:2879:4881
server.3=127.0.0.1:2880:4892
[root@10-13-125-123 ~]# egrep -v '^#|^$' /usr/local/zookeeper02/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zkdata/zookeeper02
clientPort=32182
server.1=127.0.0.1:2878:4880
server.2=127.0.0.1:2879:4881
server.3=127.0.0.1:2880:4892
[root@10-13-125-123 ~]# egrep -v '^#|^$' /usr/local/zookeeper03/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zkdata/zookeeper03
clientPort=32183
server.1=127.0.0.1:2878:4880
server.2=127.0.0.1:2879:4881
server.3=127.0.0.1:2880:4892

下面說(shuō)明一下需要注意的幾點(diǎn):

dataDir這個(gè)是指定實(shí)例數(shù)據(jù)的存放路徑,不同的實(shí)例要區(qū)分開(kāi)。并且,注釋中提醒不要設(shè)置為/tmp目錄。比如可以分別設(shè)為:

[root@10-13-125-123 ~]# ll /data/zkdata/
total 12
drwxr-xr-x 3 root root 4096 Dec  3 18:12 zookeeper01
drwxr-xr-x 3 root root 4096 Dec  3 18:12 zookeeper02
drwxr-xr-x 3 root root 4096 Dec  3 18:12 zookeeper03

clientPort這個(gè)是供客戶端連接本實(shí)例的端口號(hào),不同的實(shí)例也要區(qū)分。比如,可以分別指定為:32181、32182、32183。

server.{X}這個(gè)X可以取數(shù)字,用來(lái)標(biāo)識(shí)集群中唯一的一個(gè)實(shí)例。配置了多少個(gè)server.{X}就表示集群中有多少個(gè)實(shí)例。
后面值的格式為:{host}:{port1}:{port2}其中,{host}為實(shí)例所在的主機(jī)IP,這里由于都在一臺(tái)機(jī)器上,
所以都指定為本機(jī)地址;{port1}是集群中實(shí)例之間用于數(shù)據(jù)通信的端口;{port2}是集群中實(shí)例進(jìn)行l(wèi)eader選舉時(shí)使用的通信端口。
對(duì)于同一實(shí)例{port1}和{port2}是不可相同的。對(duì)于同一臺(tái)機(jī)器部署多個(gè)實(shí)例的情況,不同實(shí)例的同一種端口也是需要區(qū)分的。

**配置myid文件
前面提到的server.{X}配置項(xiàng)中的{X}就是一個(gè)實(shí)例的myid,它需要被寫在對(duì)應(yīng)實(shí)例的{dataDir}/myid文件中。

下面需要在每一個(gè)實(shí)例指定的{dateDir}目錄下創(chuàng)建一個(gè)名為myid的文件,文件的內(nèi)容就是一個(gè)數(shù)字,對(duì)應(yīng)server.{X}中的X。**

比如,這里是這樣配置的:

在/data/zkdata/zookeeper01/myid文件中寫入1;
在/data/zkdata/zookeeper02/myid文件中寫入2;
在/data/zkdata/zookeeper03/myid文件中寫入3。
mkdir /data/zkdata/{zookeeper01,zookeeper02,zookeeper03}  -p
echo 1 >/data/zkdata/zookeeper01/myid
echo 2 >/data/zkdata/zookeeper02/myid
echo 3 >/data/zkdata/zookeeper03/myid

創(chuàng)建啟動(dòng)和停止的腳本
對(duì)于多個(gè)實(shí)例,分別啟動(dòng)和停止比較麻煩,可以寫一個(gè)腳本來(lái)自動(dòng)完成這個(gè)工作

start-zk-servers.sh的內(nèi)容:
[root@10-13-125-123 zkdata]# cat /data/scripts/start-zk-servers.sh 
echo `/usr/local/zookeeper01/bin/zkServer.sh start`
echo `/usr/local/zookeeper02/bin/zkServer.sh start`
echo `/usr/local/zookeeper03/bin/zkServer.sh start`
[root@10-13-125-123 zkdata]# cat /data/scripts/stop-zk-servers.sh 
echo `/usr/local/zookeeper01/bin/zkServer.sh stop`
echo `/usr/local/zookeeper02/bin/zkServer.sh stop`
echo `/usr/local/zookeeper03/bin/zkServer.sh stop`

默認(rèn)地,在用戶目錄(~/)下面會(huì)生成Zookeeper的日志文件zookeeper.out。從日志中可以看出leader選舉的過(guò)程和結(jié)果。

zookeeper安裝參考文檔:
https://www.jianshu.com/p/a79ea43c49bc

二、安裝Tomcat8

apache-tomcat-8.5.31.tar.gz 
http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.31.tar.gz
http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz

tar xf apache-tomcat-8.5.31.tar.gz -C /usr/local/
ln -sv /usr/local/apache-tomcat-8.5.31  /usr/local/tomcat8

[root@10-13-125-123 ~]# tail -8  /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_172
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat8
export PATH=/usr/local/redis/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

source /etc/profile
cd /usr/local/tomcat8/webapps &&rm -fr *
上傳開(kāi)發(fā)打的dubbo-admin包
dubbo-admin-2.5.10.war
mv  dubbo-admin-2.5.10  ROOT

配置dubbo-admin 鏈接zookeeper的地址 dubbo.properties

[root@10-13-125-123 ~]# cat /usr/local/tomcat8/webapps/ROOT/WEB-INF/dubbo.properties 
dubbo.registry.address=zookeeper://127.0.0.1:32181?backup=127.0.0.1:32182,127.0.0.1:32183
dubbo.admin.root.password=roort
dubbo.admin.guest.password=guestse

重啟Tomcat服務(wù)
瀏覽器打開(kāi)
http://106.75.162.9:50876/
輸出 root /roort

就完成登錄

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI