以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
背景介绍
本文基于 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 包文件即可。