(1)zookeeper与activemq原理

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

(2)环境

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

(3)安装zookeeper

1)基本配置

  1. #node1配置:192.168.92.134
  2. [ -d /tools ] || mkdir /tools
  3. cd /tools
  4. wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
  5. tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
  6. ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
  7. mkdir /usr/local/zookeeper/{data,log}
  8. echo 1 >/usr/local/zookeeper/data/myid
  9. echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
  10. ###############################################################################
  11. #node2配置:192.168.92.135
  12. [ -d /tools ] || mkdir /tools
  13. cd /tools
  14. wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
  15. tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
  16. ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
  17. mkdir /usr/local/zookeeper/{data,log}
  18. echo 2 >/usr/local/zookeeper/data/myid
  19. echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
  20. ###############################################################################
  21. #node3配置:192.168.92.136
  22. [ -d /tools ] || mkdir /tools
  23. cd /tools
  24. wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
  25. tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
  26. ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
  27. mkdir /usr/local/zookeeper/{data,log}
  28. echo 3 >/usr/local/zookeeper/data/myid
  29. echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile

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

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

3)三台节点启动zookeeper

  1. zkServer.sh start
  2. ss -anltup | grep 2181
  1. # zkServer.sh status
  2. JMX enabled by default
  3. Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
  4. Mode: follower
  5. zkServer.sh status
  6. JMX enabled by default
  7. Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
  8. Mode: leader

(4)安装和配置activemq

1)安装activemq

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

2)修改配置文件

  1. cp /usr/local/activemq/conf/activemq.xml{,.bak}
  • 修改配置文件内容如下
  1. #vim /usr/local/activemq/conf/activemq.xml
  2. 注释一下内容:
  3. <!--
  4. <persistenceAdapter>
  5. <kahaDB directory="${activemq.data}/kahadb"/>
  6. </persistenceAdapter>
  7. -->
  8. 修改内容如下:三台主机的hostname各种修改成自己的ip地址即可
  9. <persistenceAdapter>
  10. <replicatedLevelDB
  11. directory="${activemq.data}/leveldb"
  12. replicas="3"
  13. bind="tcp://0.0.0.0:0"
  14. zkAddress="192.168.92.134:2181,192.168.92.135:2181,192.168.92.136:2181"
  15. zkPassword="redhat"
  16. hostname="192.168.92.134"
  17. sync="local_disk"
  18. zkPath="/activemq/leveldb-stores" />
  19. </persistenceAdapter>
  20. 修改brokerName:三台服务器必须要一样
  21. <broker xmlns="http://activemq.apache.org/schema/core" brokerName="mq" dataDirectory="${activemq.data}">
  • 启动activemq
  1. 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. WebKit资源加载和网络栈

    webkit笔记,主要来自 朱永盛 <WebKit技术内幕> 学习笔记,转载就注明原著,该书是国内仅有的Webkit内核的书籍,学习的好导师,推荐有兴趣的朋友可以购买 WebKit资源加载 ...

  2. 一道ioccc题目

    国际C语言混乱大赛的一个题: main() {printf(&unix["\021%six\012\0"],(unix)["have"]+"f ...

  3. php array_merge和“+”的区别和使用《细说php2》

    php array_merge和“+”的区别和使用

  4. 【bzoj4070】[Apio2015]雅加达的摩天楼 set+堆优化Dijkstra

    题目描述 印尼首都雅加达市有 N 座摩天楼,它们排列成一条直线,我们从左到右依次将它们编号为 0 到 N−1.除了这 N 座摩天楼外,雅加达市没有其他摩天楼. 有 M 只叫做 “doge” 的神秘生物 ...

  5. mii-tool与ethtool的用法详解

    mii-tool与ethtool的用法详解 1.mii-tool 配置网络设备协商方式的工具: 感谢原文作者!原文地址:http://blog.chinaunix.net/uid-20639775-i ...

  6. LA4273 Post Offices

    题目戳这里. 村庄排序.状态\(f[j][i]\)表示考虑前\(i\)个村庄,造\(j\)个邮局且\(i\)造了邮局的最小代价.我们用\(Lb_i,Rb_i\)表示在第\(i\)个村庄造邮局,邮局最左 ...

  7. Java代码管理工具SVN系列

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion ...

  8. fis难用的地方

    1. 刷新不同步,刷新的结果是前一次的修改结果2. 刷新时间非常长3. 有些代码打包不兼容,例如tween这个库,有函数yoyo:function yoyo(yoyo){}的形式,不能正确打包,会报[ ...

  9. 解决mysql的日志文件过大的问题

    https://www.2cto.com/database/201203/122984.html

  10. Endnote 中文参考文献样式修改版

    http://blog.yuelong.info/post/endnote-gbt7714-2005.html 很多人不知道 EndNote 是自带中文参考文献引用样式的,即符合<文后参考文献著 ...