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

时间: 2024-10-12 11:57:16

dubbo总结(三):dubbo部署和启动的相关文章

dubbo总结(三)——dubbo介绍和工程创建

目前常用的框架是ssh 或者ssm框架,在javaee框架上我选择了springmvc spring和mybatis框架.数据库用到了mysql.使用了maven和git做项目管理. 节点角色说明: Provider: 暴露服务的服务提供方 Consumer: 调用远程服务的服务消费方 Registry: 服务注册与发现的注册中心 Monitor: 统计服务的调用次数和调用时间的监控中心 Container: 服务运行容器 调用关系说明: 0. 服务容器负责启动,加载,运行服务提供者. 1. 服

【Dubbo】整合Dubbo+Zookeeper+SpringMVC(三)---构建服务提供者和消费者

第一步:provider和customer中添加pom.xml完整依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4

dubbo入门学习(三)-----dubbo整合springboot

springboot节省了大量的精力去配置各种bean,因此通过一个简单的demo来整合springboot与dubbo 一.创建boot-user-service-provider 本篇博文基于上篇中的dubbo项目,整体工程如下: 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(转)

Dubbo与Zookeeper.Spring整合使用 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载. 一:单机模式安装zookeeper 1,下载zookeeper注册中心,下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/ 下载后解压即可,进入E:\zookeeper-3.3.6\zookeeper-3.3.6

【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇(二)

Dubbo与Zookeeper.Spring整合使用 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载. 一:单机模式安装zookeeper 1,下载zookeeper注册中心,下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/ 下载后解压即可,进入E:\zookeeper-3.3.6\zookeeper-3.3.6

【dubbo基础】dubbo学习过程、使用经验分享及实现原理简单介绍

一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不多花了两天半时间,请尊重劳动成果,如转载请注明出处http://blog.csdn.NET/hzzhoushaoyu/article/details/43273099 二.什么是dubbo Dubbo是阿里巴巴提供的开源的SOA服务化治理的技术框架,据说只是剖出来的一部分开源的,但一些基本的需求已经

构建springmvc+mybatis+dubbo分布式平台-dubbo管控台安装

上一篇我们介绍<构建dubbo分布式平台-zookeeper注册中心的安装>,今天我们来学习-dubbo管控台安装. Dubbo管理控制台的安装 1.Dubbo管理控制台的主要作用:服务治理 2.管理控制台主要包含: 路由规则 动态配置 服务降级 访问控制 权重调整 负载均衡等管理功能 3.管理控制台版本: 当前稳定版:dubbo-admin-2.5.3.war (可到群446855438下载) 最新2.5.4-SNAPSHOT版下载地址:https://github.com/alibaba/

构建springmvc+dubbo分布式平台-dubbo管控台安装

Dubbo管理控制台的安装 1.Dubbo管理控制台的主要作用:服务治理 2.管理控制台主要包含: 路由规则 动态配置 服务降级 访问控制 权重调整 负载均衡等管理功能 3.管理控制台版本: 当前稳定版:dubbo-admin-2.5.3.war (可到群446855438下载) 最新2.5.4-SNAPSHOT版下载地址:https://github.com/alibaba/dubbo 4.安装 Dubbo 管理控制台 Dubbo 管控台可以对注册到 zookeeper 注册中心的服务或服务消

【Dubbo】Zookeeper+Dubbo项目demo搭建

一.Dubbo的注解配置 在Dubbo 2.6.3及以上版本提供支持. 1.@Service(全路径@org.apache.dubbo.config.annotation.Service) 配置服务提供方用以暴露服务,添加于api接口的实现类上,并可通过注解提供的属性进一步定制化服务. 其中比较重要的属性有: @Service只能定义在一个类上,用以提供一个服务的具体实现 interfaceClass:指定服务提供方实现的interface的类 interfaceName:指定服务提供方实现的i