ActiveMq集群部署
本文介绍基于zookeeper的ActiveMq的集群部署。
本文介绍基于zookeeper的ActiveMq的集群部署
一、部署前准备
服务版本的确定:
百度网盘下载地址:链接:https://pan.baidu.com/s/13Tql2Z9bL2NL7aeJy0sxPA?pwd=57ar
提取码:57ar
服务 | 版本 |
jdk | 1.8.0_162 |
zookeeper | 3.4.14 |
activemq | 5.15.5 |
服务器信息
安装包存放路径:/data/install
主机名 | ip地址 |
node1 | 192.168.10.100 |
node2 | 192.168.10.101 |
node3 | 192.168.10.102 |
二、部署:
将下载好的安装包上传到服务器的/data/install目录中
创建activemq、zookeeper的安装目录
mkdir /data/{activemq,zookeeper}
解压软件安装包
cd /data/install
#解压jdk
tar -zxvf jdk-8u162-linux-x64.tar.gz
#解压zookeeper
tar -zxvf zookeeper-3.4.14.tar.gz -C /data/zookeeper
#解压activemq
tar -zxvf apache-activemq-5.15.5-bin.tar.gz -C /data/activemq/
1、安装zookeeper
所有服务器都要设置环境变量:
vim /etc/profile #在文件末尾添加以下内容
#java
export JAVA_HOME=/data/install/jdk1.8.0_162
#zookeeper
export ZOOKEEPER_HOME=/data/zookeeper/zookeeper-3.4.14
export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
执行source /etc/profile 使环境变量生效
修改zookeeper配置文件,以node1(192.168.10.100)为例:
cd /data/zookeeper/zookeeper-3.4.14/conf/ && cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/data/zookeeper/zookeeper-3.4.14/data #数据存放目录
server.1=192.168.10.100:2888:3888 #集群中的服务器
server.2=192.168.10.101:2888:3888
server.3=192.168.10.102:2888:3888
创建数据存放目录
mkdir /data/zookeeper/zookeeper-3.4.14/data
在数据存放目录中创建myid文件,写入 服务器对应的数字标识
cd /data/zookeeper/zookeeper-3.4.14/data/ && echo 1 > myid
完成剩下两台服务器的部署后启动zookeeper的启动
按顺序在服务器上执行zkServer.sh start
等下服务启动完成后执行zkServer.sh status查看zookeeper的状态
node1:
node2:
mode3:
至此完成了zookeeper集群的安装
2、安装ActiveMq
修改配置文件,以node1(192.168.10.100)节点为例
cd /data/activemq/apache-activemq-5.15.5/conf
vim activemq.xml
三台服务器中的broker标签中的brokername需要保持一致,加入到同一个集群中
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
由于我们使用的zookeeper和activemq的集群给方式,所以需要注释或者删除<rpersistenceAdapter>标签中的<kahaDB directory='${activemq.data}/kahadb'/>
新增以下配置文件内容到<rpersistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3" #zookeeper集群的节点数量
bind="tcp://0.0.0.0:61617" #通信的ip端口
zkAddress="192.168.10.100:2181,192.168.10.101:2181,192.168.10.102:2181" #zookeeper集群的内容
hostname="node1" #本机对应的主机名
zkPath="/activemq/leveldb-stores"/> #activemq在zookeeper中的目录
修改 <transportConnectors>中的ip地址修改为本机对应的ip地址
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://192.168.10.100:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://192.168.10.100:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://192.168.10.100:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://192.168.10.100:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://192.168.10.100:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
修改jett.xml的配置
找到name='host'的内容,将value="0.0.0.0" 修改为value="192.168.10.100" #本机ip地址
修改剩下两台服务器的配置
在按照顺序启动activemq,在activemq安装目录的bin目录下的actviemq执行程序
启动 ./bin/activemq start
停止 ./bin/activemq stop
重启 ./bin/activemq restart
查看第一台的activemq的日志文件。
less /data/activemq/apache-activemq-5.15.5/data/activemq.log
其他两台服务器的日志中存在
可以通过浏览器进行访问测试
自此ActiveMq集群搭建完成。
3、ActiveMq完成IPv6搭建
我本机的IPv6地址为: "fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307"
在完成ActiveMq集群搭建之后,只需要修改ActiveMq的配置文件即可
将activemq.xml配置文件中的 <transportConnectors>中的IPv4地址修改为本机的IPv6地址即可
IPv4地址:192.168.10.100 ; IPv6地址需要由中括号括起:[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307]
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307]:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307]:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307]:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307]:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307]:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
在修改jetty.xml配置文件中的host的IP地址,由IPv4修改为本机的IPv6地址(中括号括起)
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<!-- the default port number for the web console -->
<property name="host" value="[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3307]"/>
<property name="port" value="8161"/>
</bean>
修改其他服务器,都将对应的IPv4地址修改为本机的IPv6地址(中括号括起)
然后按顺序重启ActiveMq服务
可以通过浏览器进行访问测试
或者直接在服务器中使用curl命令访问
curl -6 --interface ens33 "http://[fd15:4ba5:5a2b:1008:d0f0:16a8:7c6b:3308]:1817/" -g
IPv6网卡名称
ipv6完成
更多推荐
所有评论(0)