栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Zookeeper+ActiveMQ集群搭建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Zookeeper+ActiveMQ集群搭建

  • 192.168.192.130

  • 192.168.192.131

  • 192.168.192.134

Zookeeper环境准备

主机ip

消息端口

通信端口

节点目录/user/local/

192.168.192.130

2181

2888:3888

zookeeper

192.168.192.131

2181

2888:3888

zookeeper

192.168.192.134

2181

2888:3888

zookeeper

ActiveMQ环境准备:

主机IP

集群通信端口

消息端口

控制台端口

节点目录/user/local/

192.168.192.130

62621

51511

8161

activemq-cluster/node1

192.168.192.131

62622

51512

8162

activemq-cluster/node2

192.168.192.134

62623

51513

8163

activemq-cluster/node3

2.搭建zookeeper环境(三个虚拟机操作一样)

  • 解压zookeeper-3.4.5.tar.gz 复制到/opt/usr/local下(三台虚拟机都这么做)

  • 配置zookeeper的环境变量。vim/etc/profile(配置完成后要记得source /etc/profile 生效修改)

JAVA_HOME=/usr/lib/java/jdk1.7 ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.5 CLASS_PATH=.: J A V A _ H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar PATH= J A V A _ H O M E / b i n : JAVA_HOME/bin: JAVA_HOME/bin:ZOOKEEPER_HOME/bin:$PATH export JAVA_HOME CLASS_PATH ZOOKEEPER_HOME PATH

  • 修改zookeeper配置文件名,到zookeeper的conf目录下将zoo_sample.cfg文件改名为zoo.cfg

$ mv zoo_sample.cfg zoo.cfg

  • 编辑zoo.cfg文件

$ vim zoo.cfg

# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. #这个地方的目录地址改一下 dataDir=/usr/local/zookeeper-3.4.5/data #日志目录 dataLogDir=/usr/local/zookeeper-3.4.5/logs # the port at which the clients will connect clientPort=2181 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to “0” to disable auto purge feature #autopurge.purgeInterval=1 #配置三个server server.0=192.168.192.130:2888:3888 server.1=192.168.192.131:2888:3888 server.2=192.168.192.134:2888:3888

  • 在zookeeper-3.4.5目录下创建data文件夹和logs文件夹

$ cd /usr/local/zookeeper-3.4.5

$mkdir data

$mkdir logs

  • 在三个虚拟机下的data文件夹下创建三个myid文件,并且三个文件里面分别写入0,1,2

$ cd /usr/local/zookeeper-3.4.5/data

#192.168.192.130下 vim myid 在文件里面写入0,保存退出 #192.168.192.131下 vim myid 在文件里面写入1,保存退出 #192.168.192.134下 vim myid 在文件里面写入2,保存退出

  • 启动三个zookeeper

$ zkServer.sh start

[root@localhost data]# zkServer.sh start JMX enabled by default Using config: /usr/local/zookeeper-3.4.5/bin/…/conf/zoo.cfg Starting zookeeper … STARTED [root@localhost data]#

  • ps:常用命令:

启动: zkServer.sh start

停止: zkServer.sh stop

重启: zkServer.sh restart

查看服务状态: zkServer.sh status

  • 遇到的问题1:

用zkServer.sh start启动报错说zkServer.sh:未找到命令 就用 ./zkServer.sh start 来启动

  • 遇到的问题2:

三台虚拟机启动后用zkServer.sh status查看状态发现有错误

[root@localhost conf]# zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper-3.4.5/bin/…/conf/zoo.cfg Error contacting service. It is probably not running.

然后用$zkServer.sh start-foreground命令来启动查看启动日志 发现日志报错

java.net.NoRouteToHostException: No route to host at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:354) at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:388) at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:765) at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:716) 2016-11-13 18:00:35,602 [myid:0] - WARN [QuorumPeer[myid=0]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@368] - Cannot open channel to 1 at election address /192.168.192.131:3888

java.net.NoRouteToHostException: No route to host at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:354) at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:388) at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:765) at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:716) 2016-11-13 18:00:36,035 [myid:0] - INFO [QuorumPeer[myid=0]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@774] - Notification time out: 800 2016-11-13 18:00:36,837 [myid:0] - WARN [QuorumPeer[myid=0]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@368] - Cannot open channel to 2 at election address /192.168.192.134:3888

初步断定是防火墙的问题,我们关闭防火墙试试看能不能解决问题

#关闭防火墙

$ systemctl stop firewalld.service

重新启动zookeeper我们发现可以使用了。问题解决

3、搭建ActiveMQ并和Zookeeper建立集群

搭建三个ActiveMQ,分在三个服务器上,每一个服务器上一个。192.169.192.130是node1,192.168.192.131是node2,192.168.192.134是node3

(1) 解压 tar -zxvf apache-activemq-5.14.1-bin.tar.gz

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/865915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号