zookeeper+activemq实现高可用消息队列
来源:互联网 发布:有色金属价格走势软件 编辑:程序博客网 时间:2024/06/03 21:49
使用ZooKeeper实现的Master-Slave实现方式,是对ActiveMQ进行高可用的一种有效的解决方案,高可用的原理:使用ZooKeeper(集群)注册所有的ActiveMQ Broker。只有其中的一个Broker可以对外提供服务(也就是Master节点),其他的Broker处于待机状态,被视为Slave。如果Master因故障而不能提供服务,则利用ZooKeeper的内部选举机制会从Slave中选举出一个Broker充当Master节点,继续对外提供服务。
准备三台虚拟机 已经安装好了jdk
192.168.1.236
192.168.1.237
192.168.1.238
1.安装zookeeper集群
1)下载好:zookeeper-3.4.8.tar.gz
tar -zxvf zookeeper-3.4.8.tar.gz -C /usr/local/ #解压到zookeeper到/user/local
mv zookeeper-3.4.8 zookeeper #改一下名字太长不好操作
2) cd /usr/local/zookeeper/
mkdir data #数据存放
mkdir logs #日志存放
cd /usr/local/zookeeper/conf/
mv zoo_sample.cfg zoo.cfg #修改zoo.cfg
vim zoo.cfg,修改如下几项
dataDir=/usr/local/zookeeper/data/
dataLogDir=/usr/local/zookeeper/logs
最后增加
server.1=192.168.1.236:2888:3888
server.2=192.168.1.237:2888:3888
server.3=192.168.1.238:2888:3888
在/usr/local/zookeeper/data下创建myid文件内容 236机器上为1、237机器上为2、238机器上为3和上面配置文 件zoo.cfg中的序号一一对应
3)将配置好的zoo.cfg复制到其它两台机器上并且修改myid中的序号
4)启动zookeeper(三台都要启动)
关闭防火墙: service iptables stop
启动: /usr/local/zookeeper/bin/zkServer.sh start
查看zookeeper状态:
/usr/local/zookeeper/bin/zkServer.sh status
zookeeper 安装成功
2安装activemq
解压:
tar -zxvf apache-activemq-5.11.2-bin.tar.gz -C /usr/local/
cd /usr/local/ && mv apache-activemq-5.11.2/ activemq #将解压好的文件重命名,改的简单一些
修改配置文件
vim /usr/local/activemq/conf/activemq.xml
修改内容如下:
第一处修改:brokerName=”activemq-cluster”(三个节点都需要修改,并且改为一样的)
第二处:
将如下信息
<persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter>修改为:
<persistenceAdapter> <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:0" zkAddress="192.168.1.236:2181,192.168.1.237:2181,192.168.1.238:2181" hostname="192.168.1.236" sync="local_disk" zkPath="/activemq/leveldb-stores" />
其中个属性表示:
directory : 存储数据的路径
replicas : 集群中的节点数【(replicas/2)+1公式表示集群中至少要正常运行的服务数量】, 3台集群那么允许1台宕机, 另外两台要正常运行
bind : 当这个节点成为Master, 它会绑定配置好的地址和端口来履行主从复制协议(官方建议不要改动)
zkAddress : ZooKeeper的ip和port, 如果是集群, 则用逗号隔开(这里作为简单示例ZooKeeper配置为单点, 这样已经适用于大多数环境了, 集群也就多几个配置)
hostname : 本机ip
sync : 在认为消息被消费完成前, 同步信息所存贮的策略, 如果有多种策略用逗号隔开, ActiveMQ会选择较强的策略(local_mem, local_disk则肯定选择存贮在本地硬盘)
zkPath : ZooKeeper选举信息交换的存贮路径
同样将安装好的activemq复制到其它两台机器并且修改hostname
3.启动测试:
bin/activemq start
因为使用zookeeper做负载均衡,三台只有一台是master,其他两台处于等待状态,所以只有其中一台提供服务,但一旦这台服务器宕机以后,会有另外一台顶替上来,所以其他几个ip地址是打不开的,只有一台能打开在客户端使用
http://192.168.1.236:8161/admin/http://192.168.1.237:8161/admin/
http://192.168.1.238:8161/admin/
只有236能打开
默认用户名admin 密码admin 在conf/users.properties中配置
- zookeeper+activemq实现高可用消息队列
- ActiveMQ+Zookeeper 集群配置实现高可用
- zookeeper+activeMQ 高可用
- ActiveMQ常见的高可用架构模式及使用LevelDB、ZooKeeper进行高可用消息架构
- zookeeper实现高可用
- ActiveMQ实现消息队列
- ActiveMQ + ZooKeeper 集群高可用配置
- ActiveMQ高可用架构(zookeeper+levelDB)
- (十一)RabbitMQ消息队列-如何实现高可用
- HDFS +zookeeper实现高可用
- Activemq构建高并发、高可用的大规模消息系统
- 再谈ActiveMq:利用zookeeper配置HR模式(高可用模式)
- ActiveMQ基于LevelDB的Zookeeper高可用集群
- activemq的高可用(zookeeper+leveldb)主从集群
- ActiveMQ 高可用集群(ZooKeeper + LevelDB + Static discovery)
- ActiveMq+Zookeeper的高可用集群环境搭建
- 高可用消息队列服务构建-RABBITMQ
- 高可用消息队列服务构建-RABBITMQ
- fairseq报错-Error installing nn
- Laravel5中Cookie的使用
- Software Engineer | 软件工程师
- python基础知识-集合
- C#几种截取字符串的方法(split 、Substring、Replace、remove)
- zookeeper+activemq实现高可用消息队列
- 第二周学习
- Java NIO的Channel
- 第三周
- struct和typedefstruct
- linux centos7 nfs挂载
- 数据库---db2
- 浅谈小型企业对ISO9000认证价值的认可
- 08 QT实现批量修改文件名的程序