更新時(shí)間:2022-11-07 10:29:52 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2003次
Dubbo管控臺可以對注冊到zookeeper注冊中心的服務(wù)或服務(wù)消費(fèi)者進(jìn)行管理,但管控臺是否正常對Dubbo服務(wù)沒有影響,管控臺也不需要高可用,因此可以單節(jié)點(diǎn)部署。
IP: 192.168.10.101
部署容器:apache-tomcat-7.0.57
端口:8080
1.下載最新版的Tomcat7:
$wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz
2.解壓:
$ tar -zxvf apache-tomcat-7.0.57.tar.gz
$ mv apache-tomcat-7.0.57 dubbo-admin-tomcat
3.移除/home/li/dubbo-admin-tomcat/webapps目錄下的所有文件:
$ rm -rf *
4.上傳Dubbo管理控制臺程序dubbo-admin-2.5.3.war
到/home/li/dubbo-admin-tomcat/webapps
5.解壓并把目錄命名為ROOT:
$ unzip dubbo-admin-2.5.3.war -d ROOT
把dubbo-admin-2.5.3.war移到/home/wusc/tools目錄備份
$ mv dubbo-admin-2.5.3.war /home/wusc/tools
6.配置dubbo.properties:
$ vi ROOT/WEB-INF/dubbo.properties
dubbo.registry.address=zookeeper://192.168.10.101:2181
dubbo.admin.root.password=li.123
dubbo.admin.guest.password=li.123
7.防火墻開啟8080端口,用root用戶修改/etc/sysconfig/iptables,
# vi /etc/sysconfig/iptables
增加:
## dubbo-admin-tomcat:8080
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
重啟防火墻:
# service iptables restart
8.啟動(dòng)Tomat7
$ /home/wusc/dubbo-admin-tomcat/bin/startup.sh
9.瀏覽http://192.168.10.101:8080/
su - li -c '/home/li/dubbo-admin-tomcat/bin/startup.sh'
啟動(dòng)dubbo服務(wù)的的方法大概有三個(gè)
(1)servlet容器類似tomcat
(2)自建main方法,使用spring
(3)使用dubbo提供的main方法
優(yōu)缺點(diǎn)分析:
使用servlet容器會(huì)使得端口管理復(fù)雜,內(nèi)存造成不必要的浪費(fèi)。使用自建main方法,沒有使用上官方提供的main方法會(huì)造成不可估計(jì)的錯(cuò)誤,使用dubbo本身提供的main方法,可以實(shí)現(xiàn)優(yōu)雅關(guān)機(jī)。
優(yōu)雅關(guān)機(jī)我的理解是在所有服務(wù)都協(xié)調(diào)好的情況下實(shí)現(xiàn)服務(wù)的停止。
下面是main方法的代碼
在構(gòu)建的過程中,特別需要注意的是maven pom.xml文件的配置 下面把這一部分代碼也貼出來
當(dāng)生成jar包把所有的依賴都往linux上部署完之后,就可以啟動(dòng)dubbo服務(wù)了,當(dāng)然這個(gè)前提是java的linux環(huán)境要部署好。
dubbo服務(wù)的啟動(dòng)很簡單,如果只是少量的服務(wù)接口的時(shí)候,手工就可以進(jìn)行服務(wù)的維護(hù)
維護(hù)的命令如下:
java -jar xxx.jar &
kill PID
kill -9 PID
但是我們使用dubbo這個(gè)框架的時(shí)候,一般服務(wù)就是很多很多的,如果每個(gè)服務(wù)都手工去維護(hù)的話,這個(gè)工作就太繁瑣了,所以我們需要自定義的shell進(jìn)行對服務(wù)的維護(hù)。直接實(shí)現(xiàn)對腳本 start,stop 和restart
下面貼出一個(gè)shell實(shí)例,以供參考
#!/bin/sh
## java env
export JAVA_HOME=/usr/local/java/jdk1.7.0_72
export JRE_HOME=$JAVA_HOME/jre
## service name
APP_NAME=user
SERVICE_DIR=/home/li/test/service/$APP_NAME
SERVICE_NAME=test-service-$APP_NAME
JAR_NAME=$SERVICE_NAME\.jar
PID=$SERVICE_NAME\.pid
cd $SERVICE_DIR
case "$1" in
start)
nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &
echo $! > $SERVICE_DIR/$PID
echo "=== start $SERVICE_NAME"
;;
stop)
kill `cat $SERVICE_DIR/$PID`
rm -rf $SERVICE_DIR/$PID
echo "=== stop $SERVICE_NAME"
sleep 5
##
## test-service-aa.jar
## test-service-aa-bb.jar
P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "=== $SERVICE_NAME process not exists or stop success"
else
echo "=== $SERVICE_NAME process pid is:$P_ID"
echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
kill -9 $P_ID
fi
;;
restart)
$0 stop
sleep 2
$0 start
echo "=== restart $SERVICE_NAME"
;;
*)
## restart
$0 stop
sleep 2
$0 start
;;
esac
exit 0
dubbo建議使用的zookeeper作為服務(wù)的注冊中心,zookeeper做集群的時(shí)候,只要有過半的機(jī)器是正常的,那么服務(wù)就能正常的對外提供服務(wù),基于這種原則,就出現(xiàn)了所謂做集群的時(shí)候的單數(shù)原則即zookeeper的服務(wù)器出現(xiàn)2n+1的原則,所以集群最小推薦的服務(wù)器是3臺,以此類推就3,5,7.但是在做集群的時(shí)候3臺和5臺的性能是差不多的,所以在3臺還是5臺服務(wù)器選擇的時(shí)候,那么就直接選擇3臺吧,5臺臺浪費(fèi)資源,性能又差別不大。
系統(tǒng)結(jié)構(gòu)圖
集群配置:
(1)修改服務(wù)器主機(jī)名:
192.168.1.1:zookeeper01
192.168.1.2:zookeeper02
192.168.1.3 :zookeeper03
(2)上傳zookeeper-3.4.6.tar
以上就是關(guān)于“Dubbo部署和啟動(dòng)的詳細(xì)步驟”介紹,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下本站的Dubbo教程,里面還有更豐富的知識等著大家去學(xué)習(xí),希望對大家能夠有所幫助哦。
初級 202925
初級 203221
初級 202629
初級 203743