1.ActiveMq下载
下载地址:https://activemq.apache.org/components/classic/download/
2.ActiveMq解压安装
Tar -zxvf xxx(下载的安装包名称)
3.Master/Slave集群配置
shared File System Mater Slave方式
(1)选择一台服务器作为NFS服务器(如:172.17.100.60)
(2)在该服务器上面创建一个可共享的目录 如 /mydata/shareMQ目录
在/mydata下执行命令mkdir shareMQ
(3)将/mydata/shareMQ目录的权限设置为777 (chmod 777 /mydata/shareMQ)
(4)编辑NFS服务器上面的/etc/exports文件(刚开始打开是个空文件)
添加内容 /mydata/shareMQ 172.17.100.55(rw,sync) 172.17.100.57(rw,sync)
添加内容 /mydata/shareMQ 172.17.100.58(rw,sync) 172.17.100.59(rw,sync)
(5)重启nfs服务 service nfs restart
(6)选择两台服务器作为activemq的运行环境 (如:172.17.100.55 172.17.100.57)
(7)分别在两台服务器上面执行
Mount -t nfs 172.17.100.60:/mydata/shareMQ /mydata/mq/apache-activemq-5.15.14/data/kahadb
172.17.100.60:/mydata/shareMQ 刚开始创建的共享目录
/mydata/mq/apache-activemq-5.15.14/data/kahadb 挂载点,也是我们的MQ消息持久化的位置。
(8)重复上面的步骤,第二步中的共享目录新建一个/mydata/shareMQ5859
选择两台服务器作为activemq的运行环境 (如:172.17.100.58 172.17.100.59)
则会有两个master/slave集群,每个集群分别有两个节点。
4.静态网络连接配置
(1)在activemq根目录下进入/conf,可以看到activemq.xml文件
(2)编辑activemq.xml文件,添加内容(注意该配置信息需要放到broker标签下面)
<networkConnectors>
<networkConnector uri="static:(tcp://172.17.100.58:61616,tcp://172.17.100.59:61616)" duplex="true" conduitSubscriptions="false"/>
</networkConnectors>
Duplex:代表是否双向连接
conduitSubscriptions:是否把同一个broker的多个consumer当做一个来处理。如果配置为true,假定有1个消费者连接amq1,3个消费者连接amq2,那么amq1的那个消费者将接收到50%的消息,amq2的3个消费者一共接收到50%的消息。所以这里设置为false,这样假定发送100条消息,那么每个消费者消费25条消息。
uri="static:(tcp://172.17.100.58:61616,tcp://172.17.100.59:61616):连接另外两台机器上面的mq
5.ActiveMq启动、停止、查看状态
进入activemq根目录下的bin目录
启动: ./activemq start
停止: ./activemq stop
查看状态:./activemq status
6.集群高可用性测试
分别启动172.17.100.55 172.17.100.57两台机器上面的mq服务,先启动的获取到文件锁为master,后启动的为slave。只有master可以被访问到,杀掉master服务,slave获取文件锁变为master。
7.消费者负载均衡测试
两个可访问的mq服务之间形成静态的网络连接,两个服务上面各连接有一个消费者和一个生产者,其中一个生产者投递消息到mq,两个消费者各自消费一半的消息。