linux搭建activeMQ集群

1. 简介

这里是在linux虚拟机上搭建的zookeeper集群+基于levelDB的activeMQ集群,实际只有一台机

2.集群搭建步骤

2.1 搭建zookeeper集群

2.1.1 准备zookeeper集群主机与端口

主机客户端端口集群通信端口集群选举端口
127.0.0.1218228873887
127.0.0.1218328883888
127.0.0.1218428893889

 

 

 

 

 

2.1.2 下载zookeeper安装包

下载地址:https://downloads.apache.org/zookeeper

从版本3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的,里面有编译后的二进制的包,而之前的普通的tar.gz的包里面只是源码的包无法直接使用,如apache-zookeeper-3.6.2-bin.tar.gz

2.1.3 上传并解压apache-zookeeper-3.6.2-bin.tar.gz到虚拟机上,复制2份,共3个节点

我这里是把安装包上传到/opt/lsl/zookeeper这里,然后创建data目录

2.1.4 找到conf目录,将zoo_simple.cfg复制一份重命名为zoo.cfg,然后修改配置文件

节点一zoo.cfg配置:

#zk的数据目录
dataDir=/opt/lsl/zookeeper/data/2182
dataLogDir=/opt/lsl/zookeeper/log/2182
#zk端口
clientPort=2182
#zk集群配置
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

 节点二zoo.cfg配置:

#zk的数据目录
dataDir=/opt/lsl/zookeeper/data/2183
dataLogDir=/opt/lsl/zookeeper/log/2183
#zk端口
clientPort=2183
#zk集群配置
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

 节点三zoo.cfg配置:

#zk的数据目录
dataDir=/opt/lsl/zookeeper/data/2184
dataLogDir=/opt/lsl/zookeeper/log/2184
#zk端口
clientPort=2184
#zk集群配置
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

 2.1.5 在3个zk数据目录下面创建myid文件,内容分别是:1、2、3,需要与zoo.cfg配置文件中的server.x对应

2.1.6 分别启动zk集群各节点

如果zookeeper启动报错:JAVA_HOME is not set and java could not be found in PATH:如果已经安装了jdk,那么可能是zookeeper/bin/zkEnv.sh中没有读到环境变量,可以在该文件中直接写入JAVA_HOME环境变量的绝对路径

vim zkEnv.sh
#在bin/zkEnv.sh中写入jdk的绝对路径
JAVA_HOME="/usr/java/jdk1.8.0_131"

2.2 搭建activeMQ集群

2.2.1 准备activeMQ集群主机与端口

主机集群端口(conf/activemq.xml)消息端口(conf/activemq.xml)管理控制台端口(conf/jetty.xml)
127.0.0.163631616178162
127.0.0.163632616188163
127.0.0.163633616198164

 

 

 

 

 

2.2.2 下载activeMQ安装包

官网下载地址:http://activemq.apache.org/components/classic/download

windows版本:apache-activemq-xxx-bin.zip
linux版本:apache-activemq-xxx-bin.tar.gz

如这里下载的apache-activemq-5.16.1-bin.tar.gz

2.2.3 上传并解压apache-activemq-5.16.1-bin.tar.gz到虚拟机上,复制2份,共3个节点

2.2.4 更改节点一conf/jetty.xml配置

1.更改ActiveMQ管理控制台端口

<property name="host" value="0.0.0.0"/>
<property name="port" value="8162"/>

 2.2.5 更改节点一conf/activemq.xml配置

1.将brokerName改为统一的名称,如zookeeper-activemq-test,(注:三个节点的brokerName要一致)

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="zookeeper-activemq-test" dataDirectory="${activemq.data}">

2.使用性能比较好的LevelDB替换掉默认的KahaDB

<persistenceAdapter>
	<!--注释掉或者删除掉kahaDB-->
	<!--kahaDB directory="${activemq.data}/kahadb"/ -->
	<replicatedLevelDB
	directory="${activemq.data}/leveldb"
	replicas="3"
	bind="tcp://0.0.0.0:63631"
	zkAddress="127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184"
	hostname="cxj"   
	zkPath="/activemq/leveldb-stores"/>
</persistenceAdapter>

配置项说明:
directory    #持久化数据存放地址(默认的情况下${activemq.data}下是没有leveldb目录的,要自己创建)
replicas     #集群中节点的个数(由于我们是三台服务器搭建的ActiveMQ,所以replicas的数量是3)
bind           #集群通信端口
zkAddress #ZooKeeper集群地址
hostname  #当前服务器的IP地址,如果集群启动的时候报未知主机名错误,那么就需要配置主机名到IP地址的映射关系,
zkPath       #ZooKeeper数据挂载点(集群启动成功之后,会在zookeeper下自动注册该节点)

(如果需要)linux虚拟机修改主机名:

#查看主机名:
hostname 
#修改主机名:
hostnamectl set-hostname 主机名
#配置主机名到IP的映射:在/etc/hosts文件末尾加上:ip地址 主机名
vim /etc/hosts

3.更改ActiveMQ后台端口

<transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

2.2.6 同理更改其他2个节点的配置文件的集群端口、消息端口、管理控制台端口

2.2.7 启动ActiveMQ集群所有节点

#启动后在zookeeper安装目录下测试activemq是否注册到zk中,用zkCli.sh -server ip:端口登录zk,
zkCli.sh -server ip地址:端口
#用ls /查看是否连接上zk集群)
ls /

如果activemq集群启动报错:java.io.IOException: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
解决方法一:
清除所有的数据,也就是删除每个节点的上面配置的 replicatedLevelDB 节点中 directory 属性指向的目录 ,即删除每个节点下的 data/leveldb 目录
解决方法二(推荐):
将failureaccess-1.0.1.jar包放到ActiveMQ每个节点的lib目录下,然后重启每个节点,下载地址:https://mvnrepository.com/artifact/com.google.guava/failureaccess

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Docker搭建ActiveMQ集群,你可以按照以下步骤进行操作: 1. 创建Dockerfile:首先,你需要创建一个Dockerfile来定义ActiveMQ容器的构建规则。在Dockerfile中,你可以指定基础镜像、安装必要的软件和配置ActiveMQ。 2. 使用docker-compose进行搭建:docker-compose是一个用于定义和运行多个容器应用的工具。你可以使用docker-compose.yml文件定义ActiveMQ集群的配置,包括容器的数量、网络设置和映射端口等。 3. 使用commit镜像:根据引用中的建议,使用commit镜像来保存配置和修改。当你对容器进行修改后,可以使用docker commit命令将修改后的容器保存为新的镜像。 4. 设置静态网络:根据引用中的提示,确保在设置ActiveMQ的静态网络时,两个节点之间不能有空格,否则会报错。你可以在docker-compose.yml文件中指定容器之间的通信方式,如tcp://192.168.1.3:61617,tcp://192.168.1.4:61618。 5. 启动容器并查看日志:使用docker-compose命令启动容器,然后通过docker ps命令查看所有容器的状态。如果发现容器启动后马上退出,你可以使用docker logs -f 容器ID命令查看容器的日志,以便进行故障排查。 需要注意的是,在搭建ActiveMQ集群之前,你需要对broker的具体作用有一定的了解,以便正确配置和管理集群。此外,你还可以使用Idea编写Java客户端来进行生产和消费消息,以满足具体的业务需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [docker 建立activemq集群](https://blog.csdn.net/kang389110772/article/details/78270875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值