zookeeper+activemq主备简单配置

来源:互联网 发布:gp88s写频软件 编辑:程序博客网 时间:2024/05/12 16:45
硬件环境:
       三台linux服务器:192.168.2.13,192.168.2.15,192.168.2.16。
       推荐部署在三台机器上,都部署在一台机器还是会有单点故障,最少1G的内存就够了。


下载最新版本的zookeeper,apache-activemq(都是linux的64位,jdk什么的就不说了)

下面的配置三台机器基本都是一样,特别之处有备注,下面开始搭建。


1.新建文件夹 mqzk (可自己定义)
2.解压zookeeper,activmq到此目录。这里路径为:~/mqzk/zookeeper, ~/mqzk/activmq
3.配置zookeeper

        3.1 配置conf/zoo.cfg(zoo.cfg默认不存在的,需要把zoo_sample.cfg文件名称修改为zoo.cfg)

            打开zoo.cfg,修改dataDir=当前zookeeper的data文件夹目录(如果没有data文件夹,就创建一个)

            这里有三台zookeeper所以这里要配置下集群server,在zoo.cfg最后面添加三行:
                server.1=192.168.2.13:2888:3888 (本机ip)
                server.2=192.168.2.15:2888:3888 (第二台机ip)
                server.3=192.168.2.16:2888:3888 (第三台机ip)
            这里的三个server,对应着3台linux服务器(ok)。
         保存退出。

        3.2 进入 ~/mqzk/zookeeper/data文件夹,新建myid文件。打开myid文件,里面输入1保存退出。
                 输入1的原因是因为上面的server.1,所以这个值在3台zookeeper里是不一样的。

        3.3 到此配置结束。其他两台按照此配置就可以了。

        3.4 假设三台都配置好了,开始依次重启这3台服务器:进入zookeeper/bin目录,执行./zkServer.sh start 启动



4.配置activemq
    
     4.1 这里主要是配置activemq/confg目录下的activemq.xml文件,打开activemq.xml文件。
         找到  <broker xmlns="http://activemq.apache.org/schema/core" brokerName="panguixiangbroker" dataDirectory="${activemq.data}">
                将 brokerName的值改为自己需要的字符串(我这里是panguixiangbroker);
                 要特别注意这里,这个brokerName的值必须三台activemq一样(这样zookeeper才会认为是一个集群的)
     
     4.2 找到:
          <persistenceAdapter>
             <kahaDB directory="${activemq.data}/kahadb"/>
          </persistenceAdapter>

         改为:
          <persistenceAdapter>
            <replicatedLevelDB
               directory="${activemq.data}/leveldb"
               replicas="3"   <!--这里有三台所以就3了-->
               bind="tcp://0.0.0.0:0"
               zkAddress="192.168.2.13:2181,192.168.2.15:2181,192.168.2.16:2181"
               hostname="192.168.2.13"    <!--当前机器的ip-->
               zkPath="/activemq/leveldb-stores" sync="local_disk"/>   <!--这个是默认的不用改-->
           <!--<kahaDB directory="${activemq.data}/kahadb"/> -->
          </persistenceAdapter>

         保存退出

   其他两台active mq的配置类似。

   依次启动3台 activemq。(bin/linux-64/./activemq start)

在浏览器访问:http://192.168.2.13:8161,http://192.168.2.15:8161,http://192.168.2.16:8161 
  发现只有一台可以正常访问,这就对了。


然后在spring的jms配置文件里,引用集群mq,例如: failover:(tcp://192.168.2.13:61616, tcp://192.168.2.15:61616 , tcp://192.168.2.16:61616 ) 。


到此全部结束,当然这只是个简单的配置,更多配置参数请参考:

http://activemq.apache.org/replicated-leveldb-store.html

zookeeper有也有对外的api(java,ruby,python,php,等版本),可以根据业务需要开发适合直接的监控管理系统。

不在本文范围之类。


转自:http://blog.51cto.com/3131854/1676745

原创粉丝点击