在Linux服务器上安装RocketMQ

1、准备工作

需要准备以下环境

2、安装JDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 上传服务器并解压
tar -zxvf jdk-8u381-linux-x64.tar.gz
# 进入解压后的目录
cd jdk1.8.0_381/
# 查看当前所在文件夹
pwd # /home/jdk1.8.0_381
# 配置环境变量
vim /etc/profile
# 在文件最低端插入以下内容
export JAVA_HOME=/home/jdk1.8.0_381
PATH=$JAVA_HOME/bin:$PATH:$HOME/.location/bin:$HOME/bin
# 使环境变量生效
source /etc/profile
# 验证
java -version
# 获得如下结果,成功安装
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)

3、安装RocketMQ

3.1、安装启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 上传并解压
unzip rocketmq-all-5.1.3-bin-release.zip
# 重命名文件夹
mv rocketmq-all-5.1.3-bin-release rocketmq
# 进入文件夹并获取当前路径
cd rocketmq/ && pwd # /home/rocketmq
# 配置环境变量
vim /etc/profile
# 加上下面两行
export ROCKETMQ_HOME=/home/rocketmq
export NAMESRV_ADDR='worker1:9876;worker2:9876;worker3:9876'
PATH=$ROCKETMQ_HOME/bin:$JAVA_HOME/bin:$PATH:$HOME/.location/bin:$HOME/bin
# 使环境变量生效
source /etc/profile
# 修改NameServer启动配置
cd /home/rocketmq/bin/
vim runserver.sh
# 将JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"改为
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 启动NameServer
nohup ./mqnamesrv &
# 查看是否启动成功
tail -f nohup.out
# 看到如下所示,则代表启动成功
The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
# 修改Broker启动脚本配置
vim runbroker.sh
# 将JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"修改为
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"
# 修改Broker配置文件
vim /home/rocketmq/conf/broker.conf
# 允许自动创建topic
autoCreateTopicEnable=true
# 添加nameserver地址
namesrvAddr=localhost:9876
#启动broker
nohup ./mqbroker -c ../conf/broker.conf &
# 查看启动日志
tail -f nohup.out
# 出现如下信息,表示启动成功
The broker[broker-a, 192.168.52.129:10911] boot success. serializeType=JSON and name server is localhost:9876

3.2、验证消息收发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# rocketmq安装包中自带了验证工具
# 消息发送
export NAMESRV_ADDR='localhost:9876'
./tools.sh org.apache.rocketmq.example.quickstart.Producer

# 运行脚本呢后会发送1000条消息,发送完成后自动退出
........
SendResult [sendStatus=SEND_OK, msgId=C0A8348151D5098074540D9215D603E3, offsetMsgId=C0A8348100002A9F000000000003A845, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=2], queueOffset=248]
SendResult [sendStatus=SEND_OK, msgId=C0A8348151D5098074540D9215D803E4, offsetMsgId=C0A8348100002A9F000000000003A936, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=3], queueOffset=249]
SendResult [sendStatus=SEND_OK, msgId=C0A8348151D5098074540D9215D903E5, offsetMsgId=C0A8348100002A9F000000000003AA27, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=0], queueOffset=249]
SendResult [sendStatus=SEND_OK, msgId=C0A8348151D5098074540D9215DB03E6, offsetMsgId=C0A8348100002A9F000000000003AB18, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=1], queueOffset=249]
SendResult [sendStatus=SEND_OK, msgId=C0A8348151D5098074540D9215DC03E7, offsetMsgId=C0A8348100002A9F000000000003AC09, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=2], queueOffset=249


# 消息接收
export NAMESRV_ADDR='localhost:9876'
./tools.sh org.apache.rocketmq.example.quickstart.Consumer

# 消费消息,消费完后并不会自动退出,会继续等待
.......
ConsumeMessageThread_please_rename_unique_group_name_4_18 Receive New Messages: [MessageExt [brokerName=broker-a, queueId=3, storeSize=241, queueOffset=107, sysFlag=0, bornTimestamp=1693725275860, bornHost=/192.168.52.129:36774, storeTimestamp=1693725275861, storeHost=/192.168.52.129:10911, msgId=C0A8348100002A9F000000000001927E, commitLogOffset=103038, bodyCRC=975357205, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={CONSUME_START_TIME=1693725443424, MSG_REGION=DefaultRegion, UNIQ_KEY=C0A8348151D5098074540D920ED401AC, CLUSTER=DefaultCluster, MIN_OFFSET=0, TAGS=TagA, WAIT=true, TRACE_ON=true, MAX_OFFSET=250}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 52, 50, 56], transactionId='null'}]]
ConsumeMessageThread_please_rename_unique_group_name_4_1 Receive New Messages: [MessageExt [brokerName=broker-a, queueId=2, storeSize=241, queueOffset=51, sysFlag=0, bornTimestamp=1693725274895, bornHost=/192.168.52.129:36774, storeTimestamp=1693725274897, storeHost=/192.168.52.129:10911, msgId=C0A8348100002A9F000000000000C271, commitLogOffset=49777, bodyCRC=472303284, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={CONSUME_START_TIME=1693725443294, MSG_REGION=DefaultRegion, UNIQ_KEY=C0A8348151D5098074540D920B0F00CF, CLUSTER=DefaultCluster, MIN_OFFSET=0, TAGS=TagA, WAIT=true, TRACE_ON=true, MAX_OFFSET=250}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 50, 48, 55], transactionId='null'}]]

3.3、关闭RocketMQ服务

1
2
3
4
# 关闭Broker
sh ./mqshutdown broker
# 关闭nameserver
sh ./mqshutdown namesrv

4、安装RocketMQ-dashboard

4.1、安装Maven

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 上传并解压Maven
tar -zxvf apache-maven-3.9.4-bin.tar.gz
# 创建Maven仓库
mkdir repository
# 配置环境变量
vim /etc/profile
export MAVEN_HOME=/home/apache-maven-3.9.4
PATH=$MAVEN_HOME/bin:$ROCKETMQ_HOME/bin:$JAVA_HOME/bin:$PATH:$HOME/.location/bin:$HOME/bin
# 使环境变量生效
source /etc/profile
# 验证,出现版本信息说明安装成功
mvn -v
# 配置settings.xml
vim /home/apache-maven-3.9.4/conf/settings.xml
#在对应位置加入
<localRepository>/home/repository</localRepository>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>

4.2、安装dashboard

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 上传并解压
unzip rocketmq-dashboard-rocketmq-dashboard-1.0.0.zip
cd rocketmq-dashboard-rocketmq-dashboard-1.0.0
# 修改application.properties
rocketmq.config.namesrvAddr=127.0.0.1:9876
# 编译源代码
mvn clean package -Dmaven.test.skip=true
# 进入target目录即可看到编译后的jar包
cd target/ && ll
# 移动到/home
mv rocketmq-dashboard-1.0.0.jar /home/rocketmq-dashboard-1.0.0.jar
# 启动jar包
nohup java -jar /home/rocketmq-dashboard-1.0.0.jar & && tail -f nohup.out
# 访问IP:8080看到控制面板则说明成功安装