ActiveMQ+ZooKeeper高可用集群

一 、ActiveMQ主要的几类部署方式比较

1.1、默认的单机部署(kahadb)

ActiveMQ的默认存储的单机方式,以本地kahadb文件的方式存储,所以性能指标完全依赖本地磁盘IO,不能提供高可用。

1.2、基于ZooKeeper的主从(levelDB Master/Slave)

apache-activemq-5.9.0开始, 新推出的主从实现,基于zookeeper来选举出一个master,其他节点自动作为slave实时同步消息。

因为有实时同步数据的slave的存在,master不用担心数据丢失,所以leveldb会优先采用内存存储消息,异步同步到磁盘。所以该方式的ActiveMQ读写性能都最好,特别是写性能能够媲美非持久化消息。

优点:

  • 实现高可用和数据安全
  • 性能较好

缺点:

  • 因为选举机制要超过半数,所以最少需要3台节点,才能实现高可用。

1.3、基于共享数据库的主从(Shared JDBC Master/Slave)

可以基于postgres、mysql、oracle等常用数据库。
每个节点启动都会争抢数据库锁,从而保证master的唯一性,其他节点作为备份,一直等待数据库锁的释放。
因为所有消息读写,其实都是数据库操作,ActiveMQ节点本身压力很小,性能完全取决于数据库性能。

优点:

  • 实现高可用和数据安全
  • 简单灵活,2台节点就可以实现高可用

缺点:

  • 稳定性依赖数据库
  • 性能依赖数据库

下面是ActiveMQ+ZooKeeper集群整合

二、 ActiveMQ+ZooKeeper 集群整合

服务器说明
共有3台服务器,服务器的操作系统是 centos6.4,其他信息如下:

服务名称服务器1服务器2服务器3
ip地址192.168.4.101192.168.4.102192.168.4.103
主机名称week01week02week03

三、 activemq下载

使用 activemq下载地址:https://mirrors.cnnic.cn/apache/activemq (清华大学镜像)
选择的是 apache-activemq-5.14.5-bin.tar.gz

四、 activemq 配置

4.1、上传、解压

/my_soft
tar -zxvf apache-activemq-5.14.5-bin.tar.gz 

4.2、修改 activemq.xml 配置

4.2.1、修改 brokerName 的值

修改

brokerName="activemq-cluster"

4.2.2、注释掉默认的persistenceAdapter

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

4.2.3、添加新的leveldb

week01:

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

参数说明:

  • directory: 存储数据的路径
  • replicas: 集群中的节点数[(replicas/2)+1公式表示集群中至少要正常运行的服务数量], 即3台集群保证两台要正常运行
  • bind: 这个节点成为Master,它会绑定配置好的地址和端口来履行主从复制协议
  • zkAddress: ZooKeeper的ip和port
  • hostname:主机名或IP
  • zkPath:ZooKeeper选举信息交换的存贮路径

其他配置项:

  • zkPassword="password" 当连接到ZooKeeper服务器时用的密码 。

4.3、week02、week03的配置修改

将配置好的activemq远程上传到week02、week03服务器上

scp -r /my_soft/apache-activemq-5.14.5  root@week02:/my_soft/
scp -r /my_soft/apache-activemq-5.14.5  root@week03:/my_soft/

上传完毕后,只需要修改上面修改内容中的hostname,分别改成hostname="week02"hostname="week03" 即可。

五、 启动

/my_soft/apache-activemq-5.14.5/bin 目录下,执行启动命令:

[root@week01 bin]# ./activemq start

week02、week03 使用相同的命令启动服务。

activemq命令说明:
./activemq start 启动 activemq
./activemq stop 停止 activemq

六、 查看日志

默认日志存放目录是 /apache-activemq-5.14.5/data/activemq.log

查看日志命令:

tail -500f activemq.log

这里写图片描述

七、 测试

登录activemq web页面,测试

http://192.168.4.101:8161/admin/
http://192.168.4.102:8161/admin/
http://192.168.4.103:8161/admin/

结果: 有一台能打开网页,其它两台打不开网页。

分析原因: 因为使用zookeeper做负载均衡,三台只有一台是master,其他两台处于等待状态,所以只有其中一台提供服务(能打开网页),但一旦这台服务器宕机以后,会有另外一台顶替上来,所以其他几个ip地址是打不开的(打不开网页),只有一台能打开。

将当前可以访问的activemq进程干掉,其余两个中的其中一个成为master,即可以访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值