一、准备工作:

准备三台机器:
192.168.35.111
192.168.35.112
192.168.35.113

二、搭建zookeeper

三台机器上均要搭建zookeeper服务
// 下载zookeeper安装包

# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
# tar -xvf zookeeper-3.4..tar.gz -C /opt
# cd /opt/zookeeper-3.4./conf/
# cp zoo_sample.cfg zoo.cfg

// 修改zoo.cfg文件
# grep -Ev '#|^$' zoo.cfg

tickTime=
initLimit=
syncLimit=
dataDir=/opt/zookeeper-3.4./data_zookeeper
clientPort=
server.=192.168.35.111::
server.=192.168.35.112::
server.=192.168.35.113::

// 第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888

这一步很重要,如果顺序对应的数字不对,,会导致zookeeper服务启动失败
server.1服务器:echo 1 > /opt/zookeeper-3.4.10/zookeeper/myid
server.2服务器:echo 2 > /opt/zookeeper-3.4.10/zookeeper/myid
server.3服务器:echo 3 > /opt/zookeeper-3.4.10/zookeeper/myid

// 启动zookeeper服务

# /opt/zookeeper-3.4./bin/zkServer.sh start #启动服务
# /opt/zookeeper-3.4./bin/zkServer.sh stop #停止服务
# /opt/zookeeper-3.4./bin/zkServer.sh restart #重启服务
# /opt/zookeeper-3.4./bin/zkCli.sh #连接集群

三、搭建activemq集群

三台机器上均要搭建activemq服务
// 下载activemq安装包

# wget https://archive.apache.org/dist/activemq/5.12.0/apache-activemq-5.12.0-bin.tar.gz
# tar -xvf apache-activemq-5.12.-bin.tar.gz -C /opt

// 修改配置文件 activemq.xml,使用性能比较好的LevelDB替换掉默认的KahaDB

brokerName 一定要设置相同
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-test" dataDirectory="${activemq.data}">
禁掉 原来的 < kahaDB directory="${activemq.data}/kahadb"/ >
<persistenceAdapter>
<!--kahaDB directory="${activemq.data}/kahadb"/ -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62621"
zkAddress="192.168.35.111:2181,192.168.35.112:2182,192.168.35.113:2183"
hostname="192.168.37.111" # 设为当前主机的ip
zkPath="/activemq/leveldb-stores"/>
</persistenceAdapter>

配置项说明:
directory:持久化数据存放地址
replicas:集群中节点的个数
bind:集群通信端口
zkAddress:ZooKeeper集群地址
hostname:当前服务器的IP地址,如果集群启动的时候报未知主机名错误,那么就需要配置主机名到IP地址的映射关系。
zkPath:ZooKeeper数据挂载点
至此,ActiveMQ的高可用集群搭建完成。

四、启动集群

前提:ZooKeeper集群已启动
分别启动三台ActiveMQ服务器

# /opt/apache-activemq-5.12./bin/activemq start // 启动activemq服务
# /opt/apache-activemq-5.12./bin/activemq stop // 结束activemq服务
# /opt/apache-activemq-5.12./bin/activemq restart // 重启activemq服务
# /opt/apache-activemq-5.12./bin/activemq status // 查看activemq服务状态

集群启动成功后,ActiveMQ会往ZooKeeper中注册集群信息。为了方便,我们使用ZooInspector工具来查看具体的内容。
第一条注册信息:

其他两个

从以上三条注册信息的内容我们可以看出,(192.168.35.182)被选举为主节点,并对外提供服务,其余两个节点作为从节点,处于待机状态,不提供服务。

知道了ActiveMQ集群的主节点后,我们可以使用浏览器来访问它的管理页面,查看它是否能正常提供服务.

五、测试集群的高可用性
关掉主节点,使用ZooInspector工具来查看具体的内容,发现主节点的ip地址换了,并且节点显示只剩下两个。

zookeeper+activemq高可用集群搭建的更多相关文章

  1. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...

  2. ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)

    ActiveMQ 高可用集群安装.配置(ZooKeeper + LevelDB) 1.ActiveMQ 集群部署规划: 环境: JDK7 版本:ActiveMQ 5.11.1 ZooKeeper 集群 ...

  3. hadoop高可用集群搭建小结

    hadoop高可用集群搭建小结1.Zookeeper集群搭建2.格式化Zookeeper集群 (注:在Zookeeper集群建立hadoop-ha,amenode的元数据)3.开启Journalmno ...

  4. Spark高可用集群搭建

    Spark高可用集群搭建 node1    node2    node3   1.node1修改spark-env.sh,注释掉hadoop(就不用开启Hadoop集群了),添加如下语句 export ...

  5. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  6. spring cloud 服务注册中心eureka高可用集群搭建

    spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...

  7. Hbase 完全分布式 高可用 集群搭建

    1.准备 Hadoop 版本:2.7.7 ZooKeeper 版本:3.4.14 Hbase 版本:2.0.5 四台主机: s0, s1, s2, s3 搭建目标如下: HMaster:s0,s1(备 ...

  8. HDFS-HA高可用集群搭建

    HA高可用集群搭建 1.总体集群规划 在hadoop102.hadoop103和hadoop104三个节点上部署Zookeeper. hadoop102 hadoop103 hadoop104 Nam ...

  9. SpringCloud全家桶学习之服务注册与发现及Eureka高可用集群搭建(二)

    一.Eureka服务注册与发现 (1)Eureka是什么? Eureka是NetFlix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故 ...

随机推荐

  1. c#阿里云短信验证码

    发送验证码 private static void SendAcs(string mobile, string templateCode, dynamic json, int ourid) { if ...

  2. Host x.x.x.x not found in /root/.ssh/known_hosts

    候解决办法是,只要找到电脑里“.ssh” 文件夹,将文件夹里的文件”known_hosts”删除掉或者担心删除了会有风险,改个名字,然后在重新提交的时候,就能正确提交了 将known_hosts删掉或 ...

  3. 在Linux上安装Python3.7.1

    一.安装依赖环境 输入命令:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readlin ...

  4. rabbiit报错处理

    一.ping不同download.yunwei.edu 内网服务地址必须在前面 [root@localhost ~]# vim /etc/resolv.conf # Generated by Netw ...

  5. spring boot 整合redis

    spring boot 中配置redis1 在pom.xml中增加相关包依赖:<dependency> <groupId>org.springframework.boot< ...

  6. wpf 父控件和子控件 各自触发鼠标按下事件

    父控件 PreviewMouseDown子控件 MouseDown

  7. tcpdump分析tcp连接的建立、传输和关闭

    http://note.youdao.com/noteshare?id=2aa0379d1e4b3bcddc26174861ffe09a

  8. C基础知识(9):输入输出、文件读写

    输入输出 (1) getchar() & putchar() 函数: 读写字符. (2) scanf() 和 printf() 函数:根据提供的format来转换输入为其他数据类型,并根据提供 ...

  9. DirectX* 11 多线程渲染的性能、方法和实践

    对于在 CPU 上运行的 PC 游戏,渲染通常是主要的性能瓶颈:多线程渲染是一种消除瓶颈的有效方法.本文研究了 DirectX* 11 多线程渲染的性能可扩展性,讨论了多线程渲染的两种基本方法,并介绍 ...

  10. 思科设备自动退出配置界面、打断命令输入、禁用DNS查询

    1.自动退出配置界面 问题及原因:当设备没有被操作,空闲一段时间后,控制台回到初始化界面.控制台默认会话时间为10分钟,过期后跳转初始化界面 解决办法:配置控制台永不超时 Switch(config) ...