部署服务生产者
在Linux操作系统上手工部署Dubbo服务
1、环境变量配置
2、部署目录规范
3、手工维护Dubbo服务
4、自定义Dubbo服务维护的Shell脚本
5、服务维护注意事项在Linux操作系统上手工部署Dubbo服务
1、环境变量配置
Java环境变量----只需要JRE
vi /etc/profile
## java env
export JAVA_HOME=/usr/local/java/jdk1.7.0_72
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/li/tools.jar:$JRE_HOME/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile在Linux操作系统上手工部署Dubbo服务
2、部署目录规范
要避免应用迁移时的路径冲突在Linux操作系统上手工部署Dubbo服务
3、手工维护Dubbo服务
java -jar edu-service-xxx.jar &
kill PID
kill -9 PID在Linux操作系统上手工部署Dubbo服务
4、自定义Dubbo服务维护的Shell脚本
脚本命名规范:
/home/wusc/edu/service/xxx/service-xxx.sh
例如:
/home/wusc/edu/service/user/service-user.sh
效果:
cd /home/wusc/edu/service/user
. /service-user.sh start
. /service-user.sh stop
. /service-user.sh restart在Linux操作系统上手工部署Dubbo服务
5、服务维护注意事项(结合自定义的Shell脚本)
(1) 脚本规范---------尽可能通用
(2) 守护进程
(3) 内存调优设置-----按需调整
(4) 日志处理---------只保留应用Log4j输出的日志
(5) 避免服务冲突 ----进程名、端口
(6) 避免进程误杀-----全匹配
以下是一个启动,关闭,重启的脚本实例
#!/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/wusc/edu/service/$APP_NAME
SERVICE_NAME=edu-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
## -w 这个参数特别重要,不加可能把其他服务杀死,加上精确匹配
## edu-service-aa.jar
## edu-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
部署消费者
Tomcat 中部署 web 应用
---- Dubbo 服务消费者 Web 应用 war 包的部署
IP: 192.168.2.61
部署容器: apache-tomcat-7.0.57
端口: 8080
应用: edu-web-boss.war
1、 下载(或上传)最新版的 Tomcat7:
$wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz
2、 规范安装目录:
/home/wusc/edu/web/xxx-tomcat
如:
/home/wusc/edu/web/boss-tomcat
3、 解压安装
$ mkdir –p /home/wusc/edu/web
$ tar -zxvf apache-tomcat-7.0.57.tar.gz
$ mv apache-tomcat-7.0.57 /home/wusc/edu/web/boss-tomcat
4、 移除/home/wusc/edu/web/boss-tomcat/webapps 目录下的所有文件:
$ rm -rf /home/wusc/edu/web/boss-tomcat/webapps/*
5、 上传 Dubbo 服务消费者 Web 应用 war 包 edu-web-boss.war
到/home/wusc/edu/web/boss-tomcat/webapps
6、 防火墙开启 8080 端口, 用 root 用户修改/etc/sysconfig/iptables,
# vi /etc/sysconfig/iptables
增加:
## boss-tomcat:8080
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
重启防火墙:
# service iptables restart
7、 Tomat 内存设置:
$ vi /home/wusc/edu/web/boss-tomcat/bin/catalina.sh
#!/bin/sh
JAVA_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m'
8、 启动 Tomat7
$ /home/wusc/edu/web/boss-tomcat/bin/startup.sh
基于 Dubbo 的分布式系统架构视频教程
作者: 吴水成, 840765167@qq.com, wu-sc@foxmail.com
龙果学院微信公众号: ron-coo
9、 浏览 http://192.168.2.61:8080/edu-web-boss
10、 配置 Tomcat 开机启动:
在虚拟主机中编辑/etc/rc.local 文件,加入:
su - wusc -c '/home/wusc/edu/web/boss-tomcat/bin/startup.sh'