一、环境:

Windows:

IDE:IntelliJ IDEA 2017.1.1

JDK:1.8.0_161

Maven:3.3.9

springboot:2.0.2.RELEASE

Linux(CentOS Linux release 7.2.1511 (Core)):

dubbo:dubbo-admin-2.0.0

zookeeper:zookeeper-3.4.10

二、部署zookeeper(集群方式)

准备三台机器或虚拟机,IP为192.168.254.3(节点1)、192.168.254.4(节点2)、192.168.254.5(节点3)。

1.下载zookeeper-3.4.10.tar.gz

地址:http://mirror.bit.edu.cn/apache/zookeeper/

2.解压zookeeper

解压gz文件,在下载的zookeeper-3.4.10.tar.gz存放目下,执行tar -zxvf zookeeper-3.4.10.tar.gz,等待命令运行完成,则生成解压后的目录为zookeeper-3.4.10,进入文件夹,文件列表如下。

设置zookeeper的安装目录为/usr/local,则将解压后的目录文件夹移动到此,即执行mv  zookeeper-3.4.10 /usr/local

3.安装配置

(1)进入/usr/local/zookeeper/conf,复制zoo_sample.cfg文件的并命名为 zoo.cfg

(2)编辑zoo.cfg

vim zoo.cfg

添加dataLogDir,设置日志目录;修改数据目录dataDir。

zookeeper有三个重要端口,默认分别为2181、2888、3888,分别是为客户端服务端口、集群内部通信端口、选举leader使用端口。这三个端口可以根据实际情况自行修改,只要是端口未被其他一个用占用都可以使用,此处故意修改三个端口为3181、12888、13888。

修改完成后保存zoo.cfg。

(3)复制zookeeper-3.4.10目录到其他服务器

scp -r root@ zookeeper-3.4.10/ 192.168.254.4:/usr/local

scp -r root@ zookeeper-3.4.10/ 192.168.254.5:/usr/local

如果直接复制需要输入其他机器帐户密码,则需要在集群机器之间配置SSH免密登录。

(4)集群各节点配置myid

将zookeeper目录复制到集群各节点后,按照上面zoo.cfg中配置的dataDir、dataLogDir中配置的实际路径,在zookeeper-3.4.10根目录下建立data、logs目录(mkdir data、mkdir logs)。

配置后,在集群节点1进入data目录,建立myid文件,并在文件中输入1,保存

节点1(192.168.254.3)                                              

同理在集群节点2、节点3中分别进入data目录,建立myid文件,在文件中分别输入2、3,保存。

节点1(192.168.254.4)                                              

节点1(192.168.254.5)                               

这里各节点myid文件中设置的数字,与zoo.cfg中配置集群节点的数字对应。

(5)集群节点启动和验证

在节点1,启动集群# ./bin/zkServer.sh start

同样,在节点2、节点3启动zookeeper。

在三个节点都启动完成后,分别查看状态:

节点1:   ./bin/zkServer.sh status               

节点2:   ./bin/zkServer.sh status               

节点3:   ./bin/zkServer.sh status               

可以看出,集群节点启动后,节点2被选举为leader。

  对于集群,也可以通过编写脚本批量一键启动集群节点。

在任意一个节点zookeeper的安装目录下,新建zkBatchServer.sh,打开并编写如下内容:

  1. #!/bin/bash
  2. #参数传递
  3. usage="Usage: $0 (start|stop|status)"
  4. if [ $# -lt 1 ]; then
  5. echo $usage
  6. exit 1
  7. fi
  8. behave=$1
  9. echo "$behave zkServer cluster"
  10.  
  11. #主机名称
  12. SERVERS="master1-hadoop master2-hadoop slave1-hadoop"
  13. for SERVER in $SERVERS
  14. do
  15. #使用ssh进行启动
  16. echo "当前"$SERVER "正在"$behave"-----------------------"
  17. ssh root@$SERVER "source /etc/profile; /usr/local/zookeeper-3.4.10/bin/zkServer.sh $behave"
  18. echo $SERVER $behave "结束------------------------------"
  19. done

设置完后,修改权限 chmod u+x  zkBatchServer.sh

zookeeper目录文件如下

批量启动集群

# ./zkBatchServer.sh start

启动后,查看集群节点状态

# ./zkBatchServer.sh status

(6)连接ZooKeeper的集群

通过192.168.254.3连接zookeeper集群,

# ./bin/zkCli.sh -r -server 192.168.254.3:3181

上面是通过zkCli.sh连接指定的节点ip和端口连接到zookeeper集群。

二、部署dubbo

(1)下载编译

dubbo项目地址https://github.com/apache/incubator-dubbo,最新的源码项目为2.6.2,不过从2.6.1后dubbo-admin已经被分离出去了,因此要部署dubbo-admin则需在           https://github.com/apache/incubator-dubbo-ops下载 。

下载解压后,进入项目录下(即incubator-dubbo-ops-master),项目工程结构如下

打开dubbo-admin\src\main\webapp\WEB-INF下的dubbo.properties,内容为:

  1. dubbo.registry.address=zookeeper://127.0.0.1:2181
  2. dubbo.admin.root.password=root
  3. dubbo.admin.guest.password=guest

将注册中心的地址更改为上面配置的zookeeper集群的地址,即

  1. dubbo.registry.address=zookeeper://192.168.254.3:3181?backup=192.168.254.4:3181,192.168.254.5:3181
  2. dubbo.admin.root.password=root
  3. dubbo.admin.guest.password=guest

导入项目到idea

或直接在项目目录控制台执行命令:mvn package -Dmaven.skip.test=true

执行成功后,进入incubator-dubbo-ops-master\dubbo-admin\target目录,

(2)安装dubbo-admin

将上面生成的war包拷贝到tomcat的webapps目录

启动tomcat后,自动解压war,生成项目目录

通过URL即可访问dubbo-admin

http://192.168.254.3:8686/dubbo-admin-2.0.0/

登录用户名密码参考dubbo.properties,其里面配置的两个账户,每个账户的用户名与密码一样

登录后可以看到管理界面如下

这篇主要学习了一下结成dubbo的环境配置,为真正集成应用做一些准备工作,下篇通过具体的代码实例学习编写服务如何注册、调用。

构建第一个Spring Boot2.0应用之集成dubbo上---环境搭建(九)的更多相关文章

  1. 构建第一个Spring Boot2.0应用之集成mybatis、Druid(七)

    一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.说明:      本文综合之 ...

  2. 构建第一个Spring Boot2.0应用之集成mybatis(六)

    一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.步骤 方式一:利用配置文件配 ...

  3. 构建第一个Spring Boot2.0应用之application.properties和application.yml(八)

    本节学习在项目中配置文件配置的方式,一种是通过applicaiton.properties,一种是通过application.yml方式. 一.环境: IDE:IntelliJ IDEA 2017.1 ...

  4. 构建第一个Spring Boot2.0应用之项目创建(一)

     1.开发环境 IDE: JAVA环境: Tomcat: 2.使用Idea生成spring boot项目 以下是使用Idea生成基本的spring boot的步骤. (1)创建工程第一步 (2)创建工 ...

  5. 构建第一个spring boot2.0应用之项目启动运行的几种方式(二)

    方法一. 配置Run/Debug Configuration  选择Main Class为项目 Application启动类(入口main方法) (2).进行项目目录,即包含pom.xml的目录下,启 ...

  6. 构建第一个Spring Boot2.0应用之Controller(三)

    Controller控制器主要是接收浏览器请求.下面说一说@Controller注解和@RestController的区别: (1)@Controller类中的方法可以直接通过返回String跳转到j ...

  7. 构建第一个Spring Boot2.0应用之RequestMapping(四)

    在学习controller的时候,测试了在RequestMapping中,value参数中配置集合,实现不同的URL访问同一方法. 本章继续学习和测试RequestMapping的其他特性. 一.Pa ...

  8. 快速搭建spring boot2.0 项目

    快速搭建spring boot2.0+mybatis+thymeleaf 项目 使用工具STS 3.9.7(eclipse) 首先创建一个spring boot2.0项目(具体创建方法就不写了) 然后 ...

  9. spring boot2.0(一 ) 基础环境搭建

    1.基础配置 开发环境:window jdk版本:1.8(spring boot2.0最低要求1.8) 开发工具:eclipse 构建方式:maven3 2.POM配置文件 <project x ...

随机推荐

  1. hadoop自动安装脚本

    还不能实现完全自动安装,只能算半自动的. 进行交互主要障碍有两点: 1. ssh-keygen的时候需要点击回车. 2. passwd 需要设置密码  如果谁能解决以上两点,欢迎email给我. 另外 ...

  2. 31、SAM文件中flag含义解释工具--转载

    转载:http://www.cnblogs.com/nkwy2012/p/6362996.html  SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这 ...

  3. 关于layui弹出层的使用

    Jquery必须大于1.83 layui必须是all,否则不显示 <script src="../js/jquery-1.8.3.min.js"></script ...

  4. js常用util

    /** 日期格式化 */Date.prototype.Format = function(format) { var o = {  "M+" : this.getMonth() + ...

  5. 【关于msyql5.6创建存储过程的一些记录】

    -- 秒杀执行存储过程DELETE $$ -- console的结束符号由;转换成 $$-- in输入参数:out:输出参数-- ROW_COUNT():返回上条dml影响的条数: 小于0:sql语句 ...

  6. LeetCode: 455 Assign Cookies(easy)

    题目: Assume you are an awesome parent and want to give your children some cookies. But, you should gi ...

  7. oracle 导入sql文件乱码

    查看  http://blog.csdn.net/fireofjava/article/details/53980966

  8. Python包管理工具setuptools之setup函数参数详解

    **********************************************************对所学内容的简单汇总******************************** ...

  9. 洛谷P5048 [Ynoi2019模拟赛]Yuno loves sqrt technology III(分块)

    传送门 众所周知lxl是个毒瘤,Ynoi道道都是神仙题 用蒲公英那个分块的方法做结果两天没卡过去→_→ 首先我们分块,预处理块与块之间的答案,然后每次询问的时候拆成整块和两边剩下的元素 整块的答案很简 ...

  10. ios json转model的简单现实

    在android开发中,可用第三方的转换库如gson等.当然在ios也有一些库如MJExtensiond等.在这里,我简单实现一下. 一.先建一个model并且继承NSObject,代码如下: cla ...