(1)zookeeper与activemq原理

使用ZooKeeper实现的Master-Slave实现方式,是对ActiveMQ进行高可用的一种有效的解决方案,高可用的原理:使用ZooKeeper(集群)注册所有的ActiveMQ Broker。只有其中的一个Broker可以对外提供服务(也就是Master节点),其他的Broker处于待机状态,被视为Slave。如果Master因故障而不能提供服务,则利用ZooKeeper的内部选举机制会从Slave中选举出一个Broker充当Master节点,继续对外提供服务。

(2)环境

  • centos版本
#cat /etc/redhat-release
CentOS release 6.5 (Final)
  • 关闭selinux和iptables防火墙配置
sed -ri '/^SELINUX=/cSELINUX=disable' /etc/selinux/config
setenforce 0
iptables -I INPUT 1 -s 192.168.92.0/24 -j ACCEPT
service iptables save
  • zookeeper环境
主机IP                 消息端口        通信端口        节点目录/usr/local/下
192.168.92.134 2181 2888:3888 zookeeper
192.168.92.135 2181 2888:3888 zookeeper
192.168.92.136 2181 2888:3888 zookeeper
  • activemq环境
主机IP                         消息端口      控制台端口          节点目录/usr/local/下
192.168.92.134 61616 8161 activemq
192.168.92.135 61616 8161 activemq
192.168.92.136 61616 8161 activemq

(3)安装zookeeper

1)基本配置

#node1配置:192.168.92.134
[ -d /tools ] || mkdir /tools
cd /tools
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
mkdir /usr/local/zookeeper/{data,log}
echo 1 >/usr/local/zookeeper/data/myid
echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
###############################################################################
#node2配置:192.168.92.135
[ -d /tools ] || mkdir /tools
cd /tools
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
mkdir /usr/local/zookeeper/{data,log}
echo 2 >/usr/local/zookeeper/data/myid
echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
###############################################################################
#node3配置:192.168.92.136
[ -d /tools ] || mkdir /tools
cd /tools
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
mkdir /usr/local/zookeeper/{data,log}
echo 3 >/usr/local/zookeeper/data/myid
echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile

2)修改配置文件:三台节点的配置相同

cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
#vim zoo.cfg
clientPort=2181
server.1=192.168.92.134:2888:3888
server.2=192.168.92.135:2888:3888
server.3=192.168.92.136:2888:3888
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log

3)三台节点启动zookeeper

zkServer.sh start
ss -anltup | grep 2181
# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: follower
zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: leader

(4)安装和配置activemq

1)安装activemq

cd /tools
wget https://mirrors.tuna.tsinghua.edu.cn/apache//activemq/5.15.3/apache-activemq-5.15.3-bin.tar.gz
tar xf apache-activemq-5.15.3-bin.tar.gz -C /usr/local/
ln -sv /usr/local/apache-activemq-5.15.3/ /usr/local/activemq
echo "export PATH=$PATH:/usr/local/activemq/bin" >>/etc/profile;source /etc/profile

2)修改配置文件

cp /usr/local/activemq/conf/activemq.xml{,.bak}
  • 修改配置文件内容如下
#vim /usr/local/activemq/conf/activemq.xml
注释一下内容:
<!--
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
-->
修改内容如下:三台主机的hostname各种修改成自己的ip地址即可
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="192.168.92.134:2181,192.168.92.135:2181,192.168.92.136:2181"
zkPassword="redhat"
hostname="192.168.92.134"
sync="local_disk"
zkPath="/activemq/leveldb-stores" />
</persistenceAdapter>
修改brokerName:三台服务器必须要一样
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="mq" dataDirectory="${activemq.data}">
  • 启动activemq
activemq start

zookeeper与activemq整合的更多相关文章

  1. 六:Dubbo与Zookeeper、SpringMvc整合和使用

    DUBBO与ZOOKEEPER.SPRINGMVC整合和使用 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架 ...

  2. JAVAEE——宜立方商城09:Activemq整合spring的应用场景、添加商品同步索引库、商品详情页面动态展示与使用缓存

    1. 学习计划 1.Activemq整合spring的应用场景 2.添加商品同步索引库 3.商品详情页面动态展示 4.展示详情页面使用缓存 2. Activemq整合spring 2.1. 使用方法 ...

  3. (转)Dubbo与Zookeeper、SpringMVC整合和使用

    原文地址: https://my.oschina.net/zhengweishan/blog/693163 Dubbo与Zookeeper.SpringMVC整合和使用 osc码云托管地址:http: ...

  4. Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  5. 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例

    第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...

  6. zookeeper + LevelDB + ActiveMQ实现消息队列高可用

    通过集群实现消息队列高可用. 消息队列在项目中存储订单.邮件通知.数据分发等重要信息,故对消息队列稳定可用性有高要求. 现在通过zookeeper选取activemq leader的形式实现当某个ac ...

  7. 【转】Dubbo_与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    原文链接:http://blog.csdn.net/congcong68/article/details/41113239 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服 ...

  8. 160906、Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  9. JMS【四】--Spring和ActiveMQ整合的完整实例

    第一篇博文JMS[一]--JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文JMS[二 ...

随机推荐

  1. 【SSH】——Struts2中的动态方法调用(一)

    首先我们来看一个简单的调用: 1.在web.xml中配置拦截器StrutsPrepareAndExecuteFilter.StrutsPrepareAndExecuteFilter实现了filter接 ...

  2. 利用Github Pages建立仓库“门面”

    嘛是Github Pages? Github Pages 是一个静态网站托管服务,用来从你的Github仓库中直接发布 个人.组织或项目的网站页面 Github Pages发布的页面统一使用githu ...

  3. PHP判断类型的方法

    1.gettype():获取变量类型 2.is_array():判断变量类型是否为数组类型 3.is_double():判断变量类型是否为倍浮点类型 4.is_float():判断变量类型是否为浮点类 ...

  4. [C/C++] 智能指针学习

    转自:http://blog.csdn.net/xt_xiaotian/article/details/5714477 一.简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存 ...

  5. 【bzoj1977】[BeiJing2010组队]次小生成树 Tree 最小生成树+权值线段树合并

    题目描述 求一张图的严格次小生成树的边权和,保证存在. 输入 第一行包含两个整数N 和M,表示无向图的点数与边数. 接下来 M行,每行 3个数x y z 表示,点 x 和点y之间有一条边,边的权值为z ...

  6. Luogu3731 HAOI2017新型城市化(二分图匹配+强连通分量)

    将未建立贸易关系看成连一条边,那么这显然是个二分图.最大城市群即最大独立集,也即n-最大匹配.现在要求的就是删哪些边会使最大匹配减少,也即求哪些边一定在最大匹配中. 首先范围有点大,当然是跑个dini ...

  7. 【NOIP模拟赛】beautiful 乱搞(平衡树)+ST

    biubiu~~~ 我用平衡树处理的这道题,然而这种方法还是要看评测姬..... 正解是乱搞....就是枚举每一位数作为中位数,比他小的看做-1比他大的看做1,那么我们从一开始就有了一个绵延的山,我们 ...

  8. BZOJ 4777 Usaco2017 Open Switch Grass Kruskal+替罪羊树+权值线段树

    这道题首先可以看出答案一定是一条边,而且答案一定在最小生成树上,那么我们就可以在这个最小生成树上维护他与异色儿子的边最小值,所以我们就可以已通过Kruskal和一棵平衡树来解决,时间复杂度是O(n*l ...

  9. AWS CLI command example

    1.list ec2 instance-id, instance status, type, ip address, name aws ec2 describe-instances --query ' ...

  10. [CVPR2018]Learning to Adapt Structured Output Space for Semantic Segmentation

    学习适应结构化输出空间进行语义分割 在语义分割场景中,虽然物体在外表上不同,但是他们的输出是结构化且共享很多例如空间分布, 局部内容等信息.所以作者提出了multi-level的输出空间adaptat ...