【Linux】RocketMQ 部署(二进制方式)

2024-09-02 11:59:11 浏览数 (1)

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~

背景介绍

本文基于 RocketMQ 4.9.4 版本,在 Kylin V10 操作系统下完成了 RocketMQ 的非容器化部署验证工作,以下为完整过程。

过程回顾

1、安装依赖(Java)

代码语言:javascript复制
cd /opt
 
# 获取安装包(下载较慢)
wget https://github.com/frekele/oracle-java/releases/download/8u181-b13/jdk-8u181-linux-x64.tar.gz
 
# 解压安装包
tar -xzf jdk-8u181-linux-x64.tar.gz
 
# 设置环境变量
cat >> ~/.bash_profile <<EOF
export JAVA_HOME=/opt/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
EOF
 
# 环境变量生效
source ~/.bash_profile
 
# 检查安装结果
java -version
jps

2、下载二进制包

代码语言:javascript复制
cd /data
 
# 获取二进制安装包
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
 
# 解压安装包
unzip rocketmq-all-4.9.4-bin-release.zip
mv rocketmq-all-4.9.4-bin-release.zip rocketmq

附官方下载地址:https://rocketmq.apache.org/download

3、修改配置文件

代码语言:javascript复制
# 添加配置内容
cat >> /data/rocketmq/conf/broker.conf <<EOF
# broker 地址 
brokerIP1 = <本机IP地址>
# nameServer 地址
namesrvAddr = <本机IP地址>:9876
EOF

4、启动 namesrv、broker 服务

代码语言:javascript复制
cd /data && mkdir /data/rocketmq/logs

# 创建启动脚本
cat >> start-namesrv.sh <<EOF
nohup bash /data/rocketmq/bin/mqnamesrv >/data/rocketmq/logs/mqnamesrv.log 2>&1 &
EOF

cat >> start-broker.sh <<EOF
nohup bash /data/rocketmq/bin/mqbroker >/data/rocketmq/logs/mqbroker.log 2>&1 &
EOF

chmod  x start-namesrv.sh start-broker.sh

# 运行启动脚本
bash start-namesrv.sh
bash start-broker.sh

# 查看日志
cat /data/rocketmq/logs/mqnamesrv.log
cat /data/rocketmq/logs/mqbroker.log

# 检查服务
jps

# 输出结果
25740 Jps
25645 BrokerStartup
25583 NamesrvStartup

# 若需要停止服务,执行
bash /data/rocketmq/bin/mqshutdown namesrv
bash /data/rocketmq/bin/mqshutdown broker

5、测试基本功能

代码语言:javascript复制
# 测试发送消息
export NAMESRV_ADDR=<本机IP地址>:9876
bash /data/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

# 测试接收消息
export NAMESRV_ADDR=<本机IP地址>:9876
bash /data/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

# 提示:若未定义 NAMESRV_ADDR,则会报错
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed

# 测试 Topic 创建
bash /data/rocketmq/bin/mqadmin updateTopic -c DefaultCluster -t test

# 查看集群信息
bash /data/rocketmq/bin/mqadmin clusterList

# 查看topic列表
bash /data/rocketmq/bin/mqadmin topicList | sort

这里需要说明的是:

测试命令可能会报错 invokeSync call the addr[null] timeout,原因是 RocketMQ 代码中默认超时时间(3000ms 或 5000ms)过短导致的。请按照

【Docker】RocketMQ 源码构建 Docker 镜像(基于 ARM 64 架构)

的步骤 2 操作后,替换 /data/rocketmq/lib 目录中相应的 jar 包文件即可。

0 人点赞