RocketMQ Install

2025-10-28

RocketMQ Install

RocketMQ消息队列安装以及使用,RocketMQ安装常见问题,以及解决方案。

摘要: 我要装个RocketMQ

rocketmq 安装

安装rocketmq需要环境:
1、jdk1.7以上
2、maven
3、git

jdk1.8

1wget http://112firshme11224.test.upcdn.net/blog/tmp/jdk-8u92-linux-x64.tar.gz  

maven下载:

1wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz  
2  
3tar xf apache-maven-3.3.9-bin.tar.gz -C /opt/  

git下载:

1yum install git -y  
2  

环境变量如下:

 1export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL  
 2export JAVA_HOME=/opt/jdk/jdk1.8.0_65  
 3export JRE_HOME=/opt/jdk/jdk1.8.0_65/jre  
 4export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH  
 5export PATH=$PATH:$JAVA_HOME/bin/  
 6export PATH=$PATH:/usr/local/go/bin  
 7export GOPATH=/usr/local/  
 8export M2_HOME=/opt/apache-maven-3.3.9  
 9export PATH=$PATH:$M2_HOME/bin  
10export ROCKETMQ_HOME=/opt/RocketMQ-3.5.8/devenv  
11export NAMESRV_ADDR=127.0.0.1:9876  

使配置文件生效

1source /etc/profile  

检测maven

1[root@dscn1 ~]# mvn -v  
2Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)  
3Maven home: /opt/apache-maven-3.3.9  
4Java version: 1.8.0_65, vendor: Oracle Corporation  
5Java home: /opt/jdk/jdk1.8.0_65/jre  
6Default locale: zh_CN, platform encoding: UTF-8  
7OS name: "linux", version: "2.6.32-573.22.1.el6.x86_64", arch: "amd64", family: "unix"  

[toc]

##一、正式开始安装rocketmq
1、下载安装

1a)wget https://github.com/alibaba/RocketMQ/archive/v3.5.8.tar.gz ###下载包  
2b)tar -xf v3.5.8.tar.gz -C /opt/ ###解压  
3c)cd /opt/RocketMQ-3.5.8 ###进入解压后目录  
4d)sh install.sh ###进行安装(下载国外的数据,时间较长)  

2、修改文件内存

1cd /opt/RocketMQ-3.5.8/devenv/bin  
2#vim修改runbroker.sh、runserver.sh两个文件  
3-------------------------------------  
4JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=320m" ###Xms启动时内存,Xmx最大内存,Xmn最小内存  
5--------------------------------------  

3、启动nameserver

1nohup sh mqnamesrv >/var/log/ns.log 2>&1 &  

4、验证nameserver是否启动:

1tail -f /var/log/ns.log ###查看日志有无错误信息  

5、启动broker
在启动borker之前需要指定nameserver地址:

1echo "export NAMESRV_ADDR=127.0.0.1:9876" >> /etc/profile ###写入到环境变量,或者直接  
2-n来指定  
3nohup sh mqbroker -n 192.168.0.106:9876 autoCreateTopicEnable=true > /var/log/mq.log 2>&1 &  

6、检验是否开启

1tail -f /var/log/mq.log ###查看日志有无错误信息  

7、关闭的命令:

1sh mqshutdown namesrv  
2sh mqshutdown broker  

8、创建队列

1sh mqadmin updateTopic -b "192.168.0.106:10911" -t Topic1 -r 10 -w 10 ###-b broker的ip和端口 -t java程序中定义的名字  

9、更改broker配置文件,更改ip,使外网可以访问

1sh mqadmin updateBrokerConfig -b 192.168.0.106:10911 -k brokerIP1 -v 192.168.0.106  

10、以此输入下面两个命令:

1bash tools.sh com.alibaba.rocketmq.example.quickstart.Producer ###生产者(生产队列)  
2  
3bash tools.sh com.alibaba.rocketmq.example.quickstart.Consumer ###消费者(清理队列)  

如果报错是内存不够,就改runbroker.shrunserver.sh两个文件

如果启动报错是不知道主机:
检查/etc/sysconfig/network 中的记录的hostname是否和/etc/hosts中的主机名绑定一致,如果不一致请确保一致
在/etc/hosts中添加 192.168.1.118 hostname的名称(master01)跟/etc/sysconfig/network一样(master01)

开启9876rocketmq的nameserver端口 #vim /etc/sysconfig/iptables

二、一主一从的配置

除了启动步骤不同。其余与上面一主的配置相同:
1、修改/opt/RocketMQ-3.5.8/devenv/bin/runbroker.sh、runserver.sh两个文件:

1JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=320m" ###Xms启动时内存,Xmx最大内存,Xmn最小内存  

2、主的机器修改/opt/RocketMQ-3.5.8/devenv/conf/2m-2s-async/broker-a.properties

 1namesrvAddr=192.168.0.106:9876;192.168.0.107:9876  
 2brokerIP1=192.168.0.106  
 3brokerClusterName=DefaultCluster  
 4brokerName=broker-a  
 5brokerId=0  
 6deleteWhen=04  
 7fileReservedTime=48  
 8brokerRole=ASYNC_MASTER  
 9flushDiskType=ASYNC_FLUSH  
10storePathRootDir=/opt/RocketMQ-3.4.6  
11storePathCommitLog=/opt/RocketMQ-3.4.6/log/commitlog  

3、从的机器修改/opt/RocketMQ-3.5.8/devenv/conf/2m-2s-async/broker-a-s.properties

 1namesrvAddr=192.168.0.106:9876;192.168.0.107:9876  
 2brokerIP1=192.168.0.107  
 3brokerClusterName=DefaultCluster  
 4brokerName=broker-a  
 5brokerId=1  
 6deleteWhen=04  
 7fileReservedTime=48  
 8brokerRole=SLAVE  
 9flushDiskType=ASYNC_FLUSH  
10storePathRootDir=/opt/RocketMQ-3.4.6  
11storePathCommitLog=/opt/RocketMQ-3.4.6/log/commitlog  

参考内容和解释如下:

 1#所属集群名字  
 2brokerClusterName=rocketmq-cluster  
 3#broker名字,注意此处不同的配置文件填写的不一样  
 4brokerName=broker-a|broker-b  
 5#0 表示 Master, >0 表示 Slave  
 6brokerId=0  
 7#nameServer地址,分号分割  
 8namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876  
 9#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数  
10defaultTopicQueueNums=4  
11#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭  
12autoCreateTopicEnable=true  
13#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭  
14autoCreateSubscriptionGroup=true  
15#Broker 对外服务的监听端口  
16listenPort=10911  
17#删除文件时间点,默认凌晨 0点  
18deleteWhen=00  
19#文件保留时间,默认 48 小时  
20fileReservedTime=120  
21#commitLog每个文件的大小默认1G  
22mapedFileSizeCommitLog=1073741824  
23#ConsumeQueue每个文件默认存30W条,根据业务情况调整  
24mapedFileSizeConsumeQueue=300000  
25#destroyMapedFileIntervalForcibly=120000  
26#redeleteHangedFileInterval=120000  
27#检测物理文件磁盘空间  
28diskMaxUsedSpaceRatio=88  
29#存储路径  
30storePathRootDir=/opt/rocketmq/data  
31#commitLog 存储路径  
32storePathCommitLog=/opt/rocketmq/data/commitlog  
33#消费队列存储路径存储路径  
34storePathConsumeQueue=/opt/rocketmq/data/consumequeue  
35#消息索引存储路径  
36storePathIndex=/opt/rocketmq/data/index  
37#checkpoint 文件存储路径  
38storeCheckpoint=/opt/rocketmq/data/checkpoint  
39#abort 文件存储路径  
40abortFile=/opt/rocketmq/data/abort  
41#限制的消息大小  
42maxMessageSize=65536  
43#flushCommitLogLeastPages=4  
44#flushConsumeQueueLeastPages=2  
45#flushCommitLogThoroughInterval=10000  
46#flushConsumeQueueThoroughInterval=60000  
47#Broker 的角色  
48#- ASYNC_MASTER 异步复制Master  
49#- SYNC_MASTER 同步双写Master  
50#- SLAVE  
51brokerRole=ASYNC_MASTER  
52#刷盘方式  
53#- ASYNC_FLUSH 异步刷盘  
54#- SYNC_FLUSH 同步刷盘  
55flushDiskType=ASYNC_FLUSH  
56#checkTransactionMessageEnable=false  
57#发消息线程池数量  
58#sendMessageThreadPoolNums=128  
59#拉消息线程池数量  
60#pullMessageThreadPoolNums=128  

4、两个机器上都启动nameserver:

1nohup sh mqnamesrv >/var/log/ns.log 2>&1 &  

5、主的机器启动broker:

1nohup sh mqbroker -c ../conf/2m-2s-async/broker-a.properties > /var/log/mq.log 2>&1 &  

6、从的机器启动broker:

1nohup sh mqbroker -c ../conf/2m-2s-async/broker-a-s.properties > /var/log/mq.log 2>&1 &  

运行成功的图!

Loading image...
Please wait a moment
Loading image...
Please wait a moment