ubuntu中部署RocketMQ

89 阅读2分钟
# 进入 /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'的原因: