首页 > 代码库 > dubbo总结(三):dubbo部署和启动

dubbo总结(三):dubbo部署和启动

Dubbo管控台可以对注册到zookeeper注册中心的服务或服务消费者进行管理,但管控台是否正常对Dubbo服务没有影响,管控台也不需要高可用,因此可以单节点部署。

 

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、 启动Tomat7

$ /home/wusc/dubbo-admin-tomcat/bin/startup.sh

 

9、 浏览http://192.168.10.101:8080/

    技术分享

 

10、 配置部署了Dubbo管控台的Tomcat开机启动:

在虚拟主机中编辑/etc/rc.local文件,加入:

su - li -c ‘/home/li/dubbo-admin-tomcat/bin/startup.sh‘

 

启动dubbo服务的的方法大概有三个

1.servlet容器类似tomcat    

2.自建main方法,使用spring

3.使用dubbo提供的main方法

优缺点分析:

 使用servlet容器会使得端口管理复杂,内存造成不必要的浪费。使用自建main方法,没有使用上官方提供的main方法会造成不可估计的错误,使用dubbo本身提供的main方法,可以实现优雅关机。

   优雅关机我的理解是在所有服务都协调好的情况下实现服务的停止。

下面是main方法的代码

    技术分享

    在构建的过程中,特别需要注意的是maven pom.xml文件的配置 下面把这一部分代码也贴出来 

技术分享

技术分享

 

 

技术分享

 

 

当生成jar包把所有的依赖都往linux上部署完之后,就可以启动dubbo服务了,当然这个前提是java的linux环境要部署好。

dubbo服务的启动很简单,如果只是少量的服务接口的时候,手工就可以进行服务的维护

    维护的命令如下:

           java -jar  xxx.jar &
          kill PID
          kill -9 PID

   但是我们使用dubbo这个框架的时候,一般服务就是很多很多的,如果每个服务都手工去维护的话,这个工作就太繁琐了,所以我们需要自定义的shell进行对服务的维护。直接实现对脚本 start,stop 和restart

  下面贴出一个shell实例,以供参考

     

[html] view plain copy
  1. #!/bin/sh  
  2.   
  3. ## java env  
  4. export JAVA_HOME=/usr/local/java/jdk1.7.0_72  
  5. export JRE_HOME=$JAVA_HOME/jre  
  6.   
  7. ## service name  
  8. APP_NAME=user  
  9.   
  10. SERVICE_DIR=/home/li/test/service/$APP_NAME  
  11. SERVICE_NAME=test-service-$APP_NAME  
  12. JAR_NAME=$SERVICE_NAME\.jar  
  13. PID=$SERVICE_NAME\.pid  
  14.   
  15. cd $SERVICE_DIR  
  16.   
  17. case "$1" in  
  18.   
  19.     start)  
  20.         nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &  
  21.         echo $! > $SERVICE_DIR/$PID  
  22.         echo "=== start $SERVICE_NAME"  
  23.         ;;  
  24.   
  25.     stop)  
  26.         kill `cat $SERVICE_DIR/$PID`  
  27.         rm -rf $SERVICE_DIR/$PID  
  28.         echo "=== stop $SERVICE_NAME"  
  29.   
  30.         sleep 5  
  31.         ##  
  32.         ## test-service-aa.jar  
  33.         ## test-service-aa-bb.jar  
  34.         P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk ‘{print $2}‘`  
  35.         if [ "$P_ID" == "" ]; then  
  36.             echo "=== $SERVICE_NAME process not exists or stop success"  
  37.         else  
  38.             echo "=== $SERVICE_NAME process pid is:$P_ID"  
  39.             echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"  
  40.             kill -9 $P_ID  
  41.         fi  
  42.         ;;  
  43.   
  44.     restart)  
  45.         $0 stop  
  46.         sleep 2  
  47.         $0 start  
  48.         echo "=== restart $SERVICE_NAME"  
  49.         ;;  
  50.   
  51.     *)  
  52.         ## restart  
  53.         $0 stop  
  54.         sleep 2  
  55.         $0 start  
  56.         ;;  
  57.   
  58. esac  
  59. exit 0  
 

   dubbo建议使用的zookeeper作为服务的注册中心,zookeeper做集群的时候,只要有过半的机器是正常的,那么服务就能正常的对外提供服务,基于这种原则,就出现了所谓做集群的时候的单数原则即zookeeper的服务器出现2n+1的原则,所以集群最小推荐的服务器是3台,以此类推就3,5,7.但是在做集群的时候3台和5台的性能是差不多的,所以在3台还是5台服务器选择的时候,那么就直接选择3台吧,5台台浪费资源,性能又差别不大。

      系统结构图

                 技术分享

   集群配置:

          1、修改服务器主机名:

                192.168.1.1:zookeeper01

                192.168.1.2:zookeeper02

                192.168.1.3 :zookeeper03

          2、上传zookeeper-3.4.6.tar

 

dubbo总结(三):dubbo部署和启动