RocketMQ_安装、启动和报错处理

自己对着网上Rocketmq的教程尝试学了一些,发现很多教程使用的rocket版本比较早,导致安装的时候容易出现很多问题

这里自己对着官方文档和动力节点2023的rocketmq教程尝试装了一下,最终启动成功,这里做下笔记。

1.安装Rocketmq

(1)使用源码安装(不推荐)

在官网快速开始 | RocketMQ (apache.org)上下载rocketmq的源码包,然后在虚拟机上创建一个文件夹rocketmq,进入rocketmq,依次执行

 unzip rocketmq-all-5.1.4-source-release.zip
 cd rocketmq-all-5.1.4-source-release/
 mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U
 cd distribution/target/rocketmq-5.1.4/rocketmq-5.1.4
 
 # 这种做法比较麻烦,之后使用rocketmq也必须进入  rocketmq安装目录/distribution/target/rocketmq-5.1.4/rocketmq-5.1.4才能使用

注意:这里需要使用mvn命令,所以你的虚拟机上必须安装好maven才能执行第三条指令

同时,如果jdk版本过高或者jdk的lib中没有tools.jar,mvn那条指令运行后会报出异常,推荐使用jdk8u_331(我自己测试成功了)

(2)直接使用二进制文件安装(推荐)

在官网快速开始 | RocketMQ (apache.org)上下载rocketmq的二进制包,直接解压就能用了,比使用源码方便很多

# 下载好之后只用解压即可
 unzip rocketmq-all-5.1.4-bin-release.zip
 cd cd rocketmq-all-5.1.4-bin-release/

2.启动Rocketmq

(1)修改配置信息

首先配置NameServer的环境变量,

#打开配置文件
vi /etc/profile
#在文件末尾添加(localhost可以换成你自己服务器的IP,我用的是本地虚拟机,就直接写localhost了)
export NAMESRV_ADDR=localhost:9876
#source命令,使修改生效
source /etc/profile

启动之前先检查一下虚拟机的内存,最好不要小于4G,因为nameServer默认使用的内存是4g

如果内存实在有限也不要紧,只需要先修改一下nameServer的运行脚本,把Xms和Xmx改小一点

这里我使用的是VSCode的Remote SSH打开的 bin/runServer.sh,可以直接修改,比较方便,使用vim修改也是可以的

image-20240105162018382

同理,接着修改runbroker.sh,把8g改成1g

image-20240105162321777

再然后,进入上一级目录,修改conf/broker.conf文件,添加如下内容

# nameServer地址
namesrvAddr=localhost:9876
# 允许broker自动创建Topic
autoCreateTopicEnable=true
# 虚拟机的IP,这里不能写localhost,因为这个是broker登记到nameServer的地址
# 如果写localhost,那么生产者和消费者拿到的IP就是localhost,无法访问broker
brokerIP1=192.168.238.61
image-20240105164126767
(2)启动rocketmq

进入 rocketmq根目录下的bin文件夹,执行下列指令

# nohup可以在后台持久运行,sh是指执行sh文件
nohup sh bin/mqnamesrv &
jps  # 查看java进程
jps -l #查看详细信息
# 启动broker,其中 > 表示输出, 比如 "> ../broker.log"表示输出异常信息到../broker.log中
# -c 表示选择配置文件,-c "../conf/broker.conf" 就表示选择"../conf/broker.conf"为配置文件
nohup sh mqbroker -c ../conf/broker.conf > ../broker.log &

还可以下载rocket-dashboard,这是rocketmq提供的查看信息的工具。这里Rocketmq官网给出了下载过程,其实也就是先下载源码,再用maven编译出一个jar包
当然,你也可以用我打包好的jar包,百度网盘链接参上:https://pan.baidu.com/s/1bO1gX-2XgUlsVEWDhZuvgw
提取码:e6ql

#首先回退至rocket-dashboard.jar所在的文件夹
# 启动rocketmq 查看信息用的工具 dashboard,通过--属性  可以动态修改jar包执行时的配置参数
# 这里的server.port其实很熟系。就是SpringBoot中application.properties的属性字段
 nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar --server.port=5001 --rocketmq.config.namesrvAddr=127.0.0.1:9876 > dashboard.log &
 
 #查看日志
 cat dashboard.log

输入jps -l,可以看到进程执行成功

image-20240105172427914

此时在浏览器输入地址 虚拟机IP:5001,就可以看到如下界面:

image-20240105172658492

(3) 查看内存消耗
free -m
# -mh查看的更详细
free -mh

3.报错处理

异常1:mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U 执行失败

image-20240105135820707

试过了几篇帖子:RocketMQ编译报错:mvn -Prelease-all -DskipTests clean install -U | mvn <goals> -rf :rocketmq-store|broker_execution spotbugs of goal com.github.spotbugs:spo-CSDN博客,但是没能解决问题

观察异常信息发现,报错是说在jdk中没有找到tools.jar这个文件,考虑到可能是jdk版本不对。查询几篇帖子才知道, JDK在11版本以后再以前的基础上做了较大的改动,安装后默认是没有jre的。并且,再JDK8以后,JDK也发生了较大的变化,移除了tools.jar和dt.jar文件,jdk1.5以后连环境变量CLASSPATH都不用配置了。因此,我决定更换成jdk_8u331的版本,这个版本的jdk是有tools.jar的。

首先卸载掉原来的jdk
rpm -qa | grep java | xargs rpm -e --nodeps  #卸载原来的jdk

然后去Oracle的官网下载jdk的tar.gz包,但是Oracle访问有时会很慢,这里可以使用百度网盘链接下载:https://pan.baidu.com/s/1-qGXkrjqbYjdIIY4SLPFiQ 提取码:69yk

下载好之后,在虚拟机自定义jdk的存放位置,使用xshell、xftp或者vscode将压缩包上传到该位置,然后再该位置打开终端,依次执行

# tar包进行解压
tar -zxvf jdk-8u331-linux-x64.tar.gz

# rpm包进行安装
rpm ivh jdk-8u331-linux-x64.rpm
配置环境变量才能生效

在管理员权限下,使用vim命令打开环境变量配置文件

vim /etc/profile

打开文件后,按下“i"键,就会进入Insert状态,此时就可以编辑文件了,在文件的末尾写入如下内容:

# jdk1.8_331路径配置
export JAVA_HOME=/usr/lib/jdk1.8_331/jdk1.8.0_331
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

image-20240105153243350

写好之后,先按esc退出insert模式,在按“:wq”就是保存并退出,这样环境变量就配置好了。然后使用

source /etc/profile

该命令可以使文件改变生效,如果发现该命令只在当前会话有效,开启新的shell之后java命令不可用,那么参考异常二。

修改好之后在rocketmq的安装目录处重新执行

mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U

此时等待maven下载所需包,然后就会看到bulid success标志信息出现(我使用的虚拟机是CentOS7

image-20240105155132718

异常2:source /etc/profile只在当前会话有效,新开一个回话后马上失效
解决方法

直接在root权限下,执行这个命令

vim ~/.bashrc

在文件的最后添加这个内容:

source /etc/profile

然后保存退出,再执行一次 source /etc/profile,这个问题就解决了

原因分析:参考https://blog.csdn.net/qq_18364087/article/details/134073129

  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值