天天看点

centos7.2 基于zookeeper集群搭建activeMQ的集群

activemq作为消息队列中间件,在分布式系统中扮演中系统之间通信兵的角色,非常重要,使用也非常广泛,而在分布式系统中,为了消除单点故障,activemq也必将是要做集群,做主备的切换的,在网上activemq的集群方案也是很多,其本身也是有主备解决方案的。

目前市面上,使用最多,最常见的,常用于中小系统的方案还是使用zookeeper来作为activemq的主从数据同步,主从切换。因为zookeeper也常与dubbo结合使用,作为分布式系统的开发架构,可以很好的融合进activemq,非常方便。

下面记录一下,基于zookeeper的activemq集群的搭建方式,并在相同的三台主机上,做zookeeper集群+ activemq的集群。

一:环境:

zookeeper: (版本:3.4.11)

192.168.9.84:2181

192.168.9.85:2181

192.168.9.86:2181

activemq-1: (版本:5.15.3)

192.168.9.84:61616

192.168.9.85:61616

192.168.9.86:61616

---------------------------------------------------------------------------------------------

首先,搭建zookeeper集群:

## zookeeper需要java环境,需要先安装jdk,这里就不说了,不了解的可以参考我的另一篇安装jdk的博文:http://blog.csdn.net/weixin_41004350/article/details/78491472

##################  所有三台机都进行下列的操作 ##########################

## 下载zookeeper 3.4.6
$ wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz

## 解压
$ tar -zxvf zookeeper-3.4.11.tar.gz

## 新增数据存储文件夹和日志文件夹
$ cd {zookeeper-dir}
$ mkdir data
$ mkdir logs

## 复制一份配置文件兵改名,然后修改配置文件
$ cp conf/zoo_sample.cfg conf/zoo.cfg
$ vim conf/zoo.cfg
-----------------------------------------------------------------------------------------------------
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.11/data
dataLogDir=/usr/local/zookeeper-3.4.11/logs
clientPort=2181

server.1=192.168.9.84:2888:3888
server.2=192.168.9.85:2888:3888
server.3=192.168.9.86:2888:3888
-----------------------------------------------------------------------------------------------------

############  每台机的data文件夹下新增myid文件,并写入当前主机的ID,即上述的server.id  ###################
$ echo '1' > {zookeeper-dir}/data/myid

## 启动之前,先确认端口是否开放,需要开放2181,2888,3888三个端口。
$ firewall-cmd --add-port=2181/tcp --permanent
           
$ firewall-cmd --add-port=2888/tcp --permanent
           
$ firewall-cmd --add-port=3888/tcp --permanent
           

$ firewall-cmd --reload## 每台电脑,依次启动zookeeper$ bin/zkServer.sh start

## 查看zookeeper的状态,会显示当前节点的状态,是leaders还是foller等。$ bin/zkServer.sh status二:然后搭建activemq集群。第一组:activemq-1############    三台机都分别做如下操作: #############################

## 首先下载安装activemq
$ wget http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.3/apache-activemq-5.15.3-bin.tar.gz&action=download
$ tar -zxvf apache-activemq-5.15.3-bin.tar.gz


## 修改配置文件
$ cd {apache-activemq-5.10.0-dir}
$ vim conf/activemq.xml
--------------------------------------------------------------------------------------------------------
## 将brokerName 改为集群的名称,例如:group1
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="group1" dataDirectory="${activemq.data}">

<persistenceAdapter>
            <!--<kahaDB directory="${activemq.data}/kahadb"/>-->   ## 注释原配置
            <replicatedLevelDB 
                    directory="${activemq.data}/leveldb_group1"    ## 文件存储路径
                    replicas="3"   ## 集群实例数
                    bind="tcp://0.0.0.0:62222"    ## 实例间通信端口
                    zkAddress="192.168.9.84:2181,192.168.9.85:2181,192.168.9.86:2181"   ## zookeeper地址
                    hostname="192.168.9.84"     ## 本机地址,三台主机各不相同
                    zkPath="/activemq/leveldb-group1"   ## zookeeper中储存路径
                    sync="local_disk"/>
        </persistenceAdapter>

--------------------------------------------------------------------------------------------------------

## OK,配置完成后,依次逐台主机启动activemq
$ bin/linux-x86-64/activemq start


## 开放端口
firewall-cmd --add-port=62222/tcp --permanent    ## 实例间通信的端口,与zookeeper通信端口
firewall-cmd --add-port=61616/tcp --permanent    ## 默认的提供服务的端口
firewall-cmd --add-port=8162/tcp --permanent    ## 默认的管理页面端口,不使用的话,可以不开
firewall-cmd --reload
           

## 查看日志文件,没有报错,正确识别到master,启动slave或master则成功。

## 启动后一定要通过查看日志文件来确定是否启动成功,别的地方是看不到是否成功的。

## 具体的日志,很容易看的,看的懂一点点英文的都能看出来,不行还有翻译嘛

$ vim data/activemq.log

OK,到此,集群搭建完成,zookeeper集群+activemq集群。

接下来进行部署这两个集群的web控制台的部署和访问

请查看我的另一篇博文:http://blog.csdn.net/weixin_41004350/article/details/79916796

继续阅读