CentOS下安装RocketMQ

1、安装jdk8

复制代码
sudo yum install java-1.8.0-openjdk

2、下载RocketMQ 4.9.4

bash 复制代码
# 创建安装目录
sudo mkdir -p /usr/local/rocketmq
sudo chown $(whoami):$(whoami) /usr/local/rocketmq
cd /usr/local/rocketmq

# 下载 RocketMQ 4.9.4
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip

# 如果下载慢,可以使用国内镜像
# wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip

# 解压
unzip rocketmq-all-4.9.4-bin-release.zip
cd rocketmq-all-4.9.4-bin-release

3、配置修改

ini 复制代码
# 修改NameServer内存配置
cd bin
vim runserver.sh

# 修改JVM参数(大约在20行左右)
# 将: JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 改为(根据你的内存调整,测试环境可以设置小些):
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"

# 修改Broker内存配置
vim runbroker.sh

# 修改JVM参数(大约在20行左右)
# 将: JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
# 改为:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx1g -Xmn256m"

# 修改broker配置文件
cd ../conf
vim broker.conf

# 添加或修改以下配置
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 添加namesrv地址
namesrvAddr = 127.0.0.1:9876

4、启动RocketMQ

bash 复制代码
# 进入bin目录
cd /home/supdev/rocketmq/rocketmq-all-4.9.4-bin-release/bin

# 在当前会话设置环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

# 启动NameServer(后台运行)
nohup sh mqnamesrv > /dev/null 2>&1 &

# 查看NameServer日志确认启动成功
tail -f ~/logs/rocketmqlogs/namesrv.log
# 看到"The Name Server boot success."表示启动成功

# 启动Broker
nohup sh mqbroker -n localhost:9876 -c ../conf/broker.conf > /dev/null 2>&1 &

# 查看Broker日志
tail -f ~/logs/rocketmqlogs/broker.log
# 看到"The broker[...] boot success."表示启动成功

5、设置开机自启

ini 复制代码
# 创建systemd服务文件
sudo tee /etc/systemd/system/rocketmq-namesrv.service << 'EOF'
[Unit]
Description=RocketMQ NameServer
After=network.target

[Service]
Type=forking
User=$(whoami)
WorkingDirectory=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/bin
ExecStart=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/bin/mqnamesrv
ExecStop=/usr/bin/pkill -f namesrv
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo tee /etc/systemd/system/rocketmq-broker.service << 'EOF'
[Unit]
Description=RocketMQ Broker
After=network.target rocketmq-namesrv.service

[Service]
Type=forking
User=$(whoami)
WorkingDirectory=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/bin
ExecStart=/usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/bin/mqbroker -n localhost:9876 -c ../conf/broker.conf
ExecStop=/usr/bin/pkill -f broker
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 重新加载systemd
sudo systemctl daemon-reload

# 设置开机启动
sudo systemctl enable rocketmq-namesrv
sudo systemctl enable rocketmq-broker

6、测试安装

bash 复制代码
# 验证服务状态
jps | grep -E "NamesrvStartup|BrokerStartup"

# 发送测试消息
export NAMESRV_ADDR=localhost:9876

# 生产消息
sh tools.sh org.apache.rocketmq.example.quickstart.Producer

# 消费消息(新开终端)
cd /usr/local/rocketmq/rocketmq-all-4.9.4-bin-release/bin
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

7、dashboard安装

bash 复制代码
cd /usr/local/rocketmq

# 下载预编译的 dashboard
wget https://github.com/apache/rocketmq-dashboard/releases/download/rocketmq-dashboard-1.0.0/rocketmq-dashboard-1.0.0.jar

# 或者从 Maven 中央仓库下载
wget https://repo1.maven.org/maven2/org/apache/rocketmq/rocketmq-dashboard/1.0.0/rocketmq-dashboard-1.0.0.jar

cd /usr/local/rocketmq

# 创建配置文件目录
mkdir -p /usr/local/rocketmq/dashboard-config

# 创建配置文件
cat > /usr/local/rocketmq/dashboard-config/application.properties << 'EOF'
# Nameserver 地址(根据您的实际配置修改)
rocketmq.config.namesrvAddr=localhost:9876

# 服务端口
server.port=8080

# 是否开启登录验证(false表示不需要登录)
rocketmq.config.loginRequired=false

# 其他可选配置
rocketmq.config.dataPath=/tmp/rocketmq-dashboard
logging.level.com.alibaba.rocketmq=INFO
EOF

#启动
cd /usr/local/rocketmq
nohup java -jar rocketmq-dashboard-1.0.0.jar --spring.config.location=dashboard-config/application.properties > dashboard.log 2>&1 &
相关推荐
SimonKing几秒前
基于Netty的TCP协议的Socket服务端
java·后端·程序员
柒.梧.7 分钟前
Spring Boot集成JWT Token实现认证授权完整实践
java·spring boot·后端
qq_2562470533 分钟前
除了“温度”,如何用 Penalty (惩罚) 治好 AI 的“复读机”毛病?
后端
内存不泄露44 分钟前
基于Spring Boot和Vue 3的智能心理健康咨询平台设计与实现
vue.js·spring boot·后端
qq_12498707531 小时前
基于Spring Boot的电影票网上购票系统的设计与实现(源码+论文+部署+安装)
java·大数据·spring boot·后端·spring·毕业设计·计算机毕业设计
麦兜*1 小时前
【Spring Boot】 接口性能优化“十板斧”:从数据库连接到 JVM 调优的全链路提升
java·大数据·数据库·spring boot·后端·spring cloud·性能优化
蛐蛐蜉蝣耶1 小时前
Spring Boot实现DynamicMethodMatcherPointcut示例
java·spring boot·后端
予枫的编程笔记1 小时前
Elasticsearch聚合分析与大规模数据处理:解锁超越搜索的进阶能力
java·大数据·人工智能·分布式·后端·elasticsearch·全文检索
码农小卡拉1 小时前
Springboot “钩子”:@PostConstruct注解
java·spring boot·后端·spring·spring cloud
William_cl1 小时前
ASP.NET Core ViewData:弱类型数据交互的精髓与避坑指南
后端·asp.net·交互