java activemq 集群_消息队列--ActiveMQ集群部署

本文详细介绍了如何在单台服务器上部署基于Zookeeper的ActiveMQ集群,包括配置JDK环境,安装Zookeeper集群,以及调整ActiveMQ配置以实现集群模式。通过这种方式,可以实现ActiveMQ的高可用性和数据安全,但需注意Zookeeper的选举机制要求至少2n+1个节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、activeMQ主要的部署方式?

1,默认的单机部署(kahadb)

activeMQ默认的存储单机模式,如果配置文件不做修改,则默认使用此模式。以本地的kahadb文件的方式进行存储,性能完全依赖本地磁盘,不能提供高可用。

2,基于zookeeper主从模式(levelDB Master/Slave)

基于zookeeper来选举一个master,其他节点作为slave实时同步消息,levelDB会优先采用内存存储消息,异步同步到磁盘。该方式读写性能都较好,写性能能媲美非持久化消息。

优点:实现高可用和数据安全,性能较好。

缺点:由于zookeeper的选举机制,必须要使用2n+1(n>=1)的节点,才能实现高可用。

3,基于共享数据库的主从模式(Shared JDBC Master/Slave)

可以基于常用的mysql,mariadb,oracle等数据库。

每个节点启动都会争抢数据库锁,从而保证master的唯一性,其他节点作为备份,一直等待数据库锁的释放。

因为所有消息读写,其实都是数据库操作,activeMQ节点本身压力很小,性能完全取决于数据库性能。

优点:实现高可用和数据安全,一般两个节点就可以实现高可用。

缺点:性能和稳定性都依赖于数据库。

二、基于zookeeper的activeMQ单台服务器集群部署

1,环境需求

Centos7系统,java环境(jdk),zookeeper安装包,activeMQ安装包

2,部署jdk环境

jdk安装包下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

83d55fe416930c1e72d4652c480f0b63.png

上面这个是最新版的,我使用的是jdk-8u121-linux-x64.tar.gz。

2.1  上传压缩包到服务器,在当前有压缩包的目录下进行操作。

2.2  创建文件夹

mkdir /application

2.3  解压压缩包(根据你自己的包名进行修改)

tar xf jdk-8u121-linux-x64.tar.gz  -C /application/

2.4  创建软链接(根据你自己的包名进行修改)

ln -s /application/jdk1.8.0_121/ /application/jdk

2.5  配置环境变量

vim /etc/profile

在最后面添加这么几行:

export JAVA_HOME=/application/jdk

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

2.6  使环境变量生效

source /etc/profile

2.7  查看jdk配置情况

命令行输入 java -version  显示:

15a263825b92591e2ad156440aba841b.png

则配置成功。

3,安装zookeeper单机集群

3.1  获取zookeeper安装包

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

3.2  安装配置(配置3个)

3.2.1  生成3个文件

tar xf zookeeper-3.4.14.tar.gz -C /usr/local/zookeeper1

tar xf zookeeper-3.4.14.tar.gz -C /usr/local/zookeeper2

tar xf zookeeper-3.4.14.tar.gz -C /usr/local/zookeeper3

3.2.2  修改 zookeeper1 的配置文件(我的内网地址是172.16.1.8)

cd /usr/local/zookeeper1/conf

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

将文件里面的内容清空,后加入以下内容

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper1/data        文件存放位置

clientPort=2181                                       端口

server.1=172.16.1.8:2881:3881              第一个节点IP和端口(使用内网)

server.2=172.16.1.8:2882:3882              第二个节点IP和端口

server.3=172.16.1.8:2883:3883              第三个节点IP和端口

3.2.3  创建 zookeeper1 的 myid 文件

cd /usr/local/zookeeper1

mkdir data

echo "1" >  /usr/local/zookeeper1/data/myid

3.2.4  修改 zookeeper2 的配置文件

cd /usr/local/zookeeper2/conf

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

将文件里面的内容清空,后加入以下内容

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper2/data        文件存放位置

clientPort=2182                                       端口

server.1=172.16.1.8:2881:3881              第一个节点IP和端口(使用内网)

server.2=172.16.1.8:2882:3882              第二个节点IP和端口

server.3=172.16.1.8:2883:3883              第三个节点IP和端口

3.2.5  创建 zookeeper1 的 myid 文件

cd /usr/local/zookeeper2

mkdir data

echo "2" >  /usr/local/zookeeper2/data/myid

3.2.6  修改 zookeeper3 的配置文件

cd /usr/local/zookeeper3/conf

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

将文件里面的内容清空,后加入以下内容

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper3/data        文件存放位置

clientPort=2183                                       端口

server.1=172.16.1.8:2881:3881              第一个节点IP和端口(使用内网)

server.2=172.16.1.8:2882:3882              第二个节点IP和端口

server.3=172.16.1.8:2883:3883              第三个节点IP和端口

3.2.7  创建 zookeeper1 的 myid 文件

cd /usr/local/zookeeper3

mkdir data

echo "3" >  /usr/local/zookeeper3/data/myid

3.2.8  启动zookeeper集群

/usr/local/zookeeper1/bin/zkServer.sh start

/usr/local/zookeeper2/bin/zkServer.sh start

/usr/local/zookeeper3/bin/zkServer.sh start

3.2.9  查看zookeeper集群状态

/usr/local/zookeeper1/bin/zkServer.sh status

28793e0a7cd9da971f605868bee0e48e.png

74bb50ee2ae21715e7d4762a76682960.png

其中,follower是跟随者,leader为领导者。

4,部署单台服务器activeMQ集群

4.1  下载activeMQ安装包

下载地址为:http://mirror.bit.edu.cn/apache//activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz

4.2  创建3个文件目录(3个)

tar xf apache-activemq-5.15.9-bin.tar.gz

cp -r apache-activemq-5.15.9 /application/activemq1

cp -r apache-activemq-5.15.9 /application/activemq2

cp -r apache-activemq-5.15.9 /application/activemq3

4.3  分别修改 activemq1、activemq2、activemq3的配置文件

4.3.1  修改 activemq1、activemq2、activemq3的  jetty.xml 文件

vim /application/activemq1/conf/jetty.xml

849d774c9def6894fb14d75c9defdafe.png

vim /application/activemq2/conf/jetty.xml

bfd6b17de7d53cb88e7bc717f8a64ced.png

vim /application/activemq3/conf/jetty.xml

21e4fc334cc3f9853917078839ebd719.png

4.3.2  修改 activemq1、activemq2、activemq3的  activemq.xml  文件

vim /application/activemq1/conf/activemq.xml

将 文件的内容修改成以下内容:

c2eecf7fbdb247e6f833af16ecbbc4fb.png

将 文件中的url修改,如果一样则无需修改

7fa1cae55ae6cebf7029425c5a6c9a0c.png

3个配置文件中的brokeName一定要一致(3个文件都要修改)

ee043581767795867d978e163d992eda.png

vim /application/activemq2/conf/activemq.xml

将 文件的内容修改成以下内容:

9ecbbf9fa79511e9ad4aa995ad1ba84a.png

将 文件中的url修改,如果一样则无需修改

ba293457c7698de29253978fafcbc96b.png

vim /application/activemq3/conf/activemq.xml

将 文件的内容修改成以下内容:

1ebb1f34a611d572b897329a8794e1d5.png

将 文件中的url修改,如果一样则无需修改

c4f532ec0ef6395cfc7396a4a47c3f3c.png

4.3.3  启动集群(那个先启动,就是Master)

/application/activemq1/bin/activemq start

/application/activemq2/bin/activemq start

/application/activemq3/bin/activemq start

4.3.4  查看启动日志

tail -fn 100 /application/activemq1/data/activemq.log

master启动:

96799ddf3f571952004019ae47d6001f.png

slave启动:

7347627d0d5829c2e47c2effb65d7c77.png

登录服务器验证:

输入公网ip,加master端口访问:

23bf0fd39bb06f0dbb0192f1f57d4229.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值