Centos7下部署ActiveMQ集群

三台centos7服务器。

1.开始前的准备ZK

必须安装zookeeper群集才能实现三台MQ链接。具体ZK群集搭建网上有很多 这里就不详谈 简单说下过程:

在zk1,zk2,zk3的目录下,创建data目录。

修改zk1,zk2,zk3的配置文件。cp zoo_sample.cfg zoo.cfg

然后进入配置文件zoo.cfg 将dataDir=/*/*/*/data改成data目录

然后在最后加入

server.1=ip:2888:3888

server.2=ip:2888:3888

server.3=ip:2888:3888

还有一步,就是在zk1,zk2,zk3的data(这个data目录也是自己创建的)下面创建一个文件myid,内容就是zoo.cfg中的服务器server.x中的数字1,2,3。

最后启动即可。。

这个比较简单,在三台机器上安装active MQ。
主要的修改配置文件,就是activemq.xml。

下面以操作mq1为例

2.然后开始配置active MQ群集:


这个比较简单,我在三台机器上安装AMQ。
主要的修改配置文件,就是activemq.xml



进入mq1目录,vim activemq.xml文件。我们这里amq的集群是基于zk的,所以,不要默认的持久化方案。即将原始的

<persistenceAdapter>
      <kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>

注释掉,采用下面的新内容:

<persistenceAdapter>
    <replicatedLevelDB 
  directory="${activemq.data}/leveldb"
  replicas="3"
  bind="tcp://0.0.0.0:0"
  zkAddress="10.90.7.10:2181,10.90.7.10:2182,10.90.7.10:2183"
  hostname="10.90.7.10"
  sync="local_disk"
  zkPath="/activemq/leveldb-stores"
  />
</persistenceAdapter>

这里,hostname要修改为amq所在机器的IP地址,或者是能够解析的域名。zkAddress是zk集群的地址,即每个zk的IP:port对,之间用逗号分隔。zkPath这里是指定的,所以,在上面的zkCli.sh中可以ls命令看到的内容。

还有,broker这个节点中的brokerName,必须三个amq实例配置都要一样。这里,我配置为tkcss了。


。。。。。。
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="tkcss" dataDirectory="${activemq.data}">

        <destinationPolicy>
            <policyMap>
              <policyEntries>
                <policyEntry topic=">" >
                    <!-- The constantPendingMessageLimitStrategy is used to prevent
                         slow topic consumers to block producers and affect other consumers
                         by limiting the number of messages that are retained
                         For more information, see:

                         http://activemq.apache.org/slow-consumer-handling.html

                    -->
                  <pendingMessageLimitStrategy>
                    <constantPendingMessageLimitStrategy limit="1000"/>
                  </pendingMessageLimitStrategy>
                </policyEntry>
              </policyEntries>
            </policyMap>
        </destinationPolicy>


        <!--
            The managementContext is used to configure how ActiveMQ is exposed in
            JMX. By default, ActiveMQ uses the MBean server that is started by
            the JVM. For more information, see:

            http://activemq.apache.org/jmx.html
        -->
        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>

        <!--
            Configure message persistence for the broker. The default persistence
            mechanism is the KahaDB store (identified by the kahaDB tag).
            For more information, see:

            http://activemq.apache.org/persistence.html
        -->
        <!--
        <persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"/>
        </persistenceAdapter>
        -->

        <persistenceAdapter>
            <replicatedLevelDB 
                directory="${activemq.data}/leveldb"
                replicas="3"
                bind="tcp://0.0.0.0:0"
                zkAddress="10.90.7.10:2181,10.90.7.10:2182,10.90.7.10:2183"
                hostname="10.90.7.10"
                sync="local_disk"
               zkPath="/activemq/leveldb-stores"
           />
        </persistenceAdapter>
。。。。。。
复制代码

 

配置完成后,即可启动amq。

[root@localhost bin]# ./activemq start

 

启动后,如果正常的话 会启动一个MQ 而另外两个没显示启动  等启动MQ死掉后 另外两个会自动选举

展开阅读全文

没有更多推荐了,返回首页