# 进入 /opt 目录
cd /opt
# 下载 RocketMQ(清华源镜像,速度较快)
sudo wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.9.7/rocketmq-all-4.9.7-bin-release.zip -P /opt
# 解压并重命名
sudo unzip rocketmq-all-4.9.7-bin-release.zip
sudo mv rocketmq-all-4.9.7-bin-release rocketmq
# 删除压缩包
sudo rm rocketmq-all-4.9.7-bin-release.zip
# 确认使用的什么
echo $SHELL #我的返回的是bash
nano ~/.bashrc
# 添加
export ROCKETMQ_HOME=/opt/rocketmq
export PATH=$ROCKETMQ_HOME/bin:$PATH
执行:ctrl O + Enter + ctrl X
保存配置:source ~/.bashrc
# 修改 NameServer 内存(256MB 足够)
sudo sed -i 's/-Xms4g -Xmx4g/-Xms256m -Xmx256m/' /opt/rocketmq/bin/runserver.sh
# 修改 Broker 内存(512MB 足够)
sudo sed -i 's/-Xms8g -Xmx8g/-Xms512m -Xmx512m/' /opt/rocketmq/bin/runbroker.sh
至此已经安装配置完成,接下来就是启动部署
看到 The Name Server boot success 和 The broker boot success 即表示启动成功。
# 启动 NameServer(后台运行)
nohup sh /opt/rocketmq/bin/mqnamesrv &
# 查看日志确认是否成功
tail -f ~/logs/rocketmqlogs/namesrv.log # NameServer 日志
# 修改broker配置,创建配置目录
sudo mkdir -p /opt/rocketmq/conf/broker.conf
# 发送测试消息
sh /opt/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 接收消息(另开终端)
sh /opt/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
编辑broker.conf:sudo nano /opt/rocketmq/conf/broker.conf
# broker 的名称
brokerName=broker-a
# 是否允许 Broker 自动创建主题
autoCreateTopicEnable=true
# 是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup=true
# 设置删除文件时间点,默认凌晨 4 点
deleteWhen=04
# 设置文件保留时间,默认 48 小时
fileReservedTime=48
# 设置 Broker 的角色,ASYNC_MASTER 为异步复制 Master
brokerRole=ASYNC_MASTER
# 设置刷盘方式,ASYNC_FLUSH 为异步刷盘
flushDiskType=ASYNC_FLUSH
# 设置 NameServer 地址
namesrvAddr=localhost:9876
启动broker:
# 启动 Broker,指定配置文件
nohup mqbroker -c /opt/rocketmq/conf/broker.conf &
# 查看 Broker 日志
tail -f ~/logs/rocketmqlogs/broker.log
3、验证安装
# 导出环境变量(如果之前的配置未生效)
export NAMESRV_ADDR=localhost:9876
# 发送测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 接收测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
4、安装图形化界面
# 安装 Git 和 Maven(如果尚未安装)
sudo apt update sudo apt install git maven -y
# 克隆 RocketMQ Dashboard 仓库
git clone https://github.com/apache/rocketmq-dashboard.git
# 进入目录
cd rocketmq-dashboard
# 修改配置文件
nano src/main/resources/application.properties
# 修改内容如下:
server.port=8080
rocketmq.config.namesrvAddr=localhost:9876
# 然后编译运行
mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar
#访问 http://your-server-ip:8080/ 即可使用 Dashboard
5、设置开机自启,创建 systemd 服务
创建 NameServer 服务:sudo nano /etc/systemd/system/rocketmq-namesrv.service
添加如下:
[Unit]
Description=RocketMQ Name Server After=network.target
[Service]
Type=forking
ExecStart=/opt/rocketmq/bin/mqnamesrv
ExecStop=/opt/rocketmq/bin/mqshutdown namesrv
User=root
Group=root
Restart=on-failure
[Install] WantedBy=multi-user.target
创建Broker服务:sudo nano /etc/systemd/system/rocketmq-broker.service
[Unit]
Description=RocketMQ Broker
After=rocketmq-namesrv.service
Requires=rocketmq-namesrv.service
[Service]
Type=forking
ExecStart=/opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/broker.conf ExecStop=/opt/rocketmq/bin/mqshutdown broker
User=root
Group=root
Restart=on-failure
[Install]
WantedBy=multi-user.target
6、启动服务
sudo systemctl daemon-reload
sudo systemctl enable rocketmq-namesrv
sudo systemctl enable rocketmq-broker
sudo systemctl start rocketmq-namesrv
sudo systemctl start rocketmq-broker
出现nohup: 忽略输入并把输出追加到'nohup.out'的原因: