Linux下rocket mq4.x下载编译入坑指南

1.环境准备

Java:1.8+
Maven:3.2+

1.1 Java

1.1.1下载Java

https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

注:该链接为java1.8,Oracle的,需要登录

1.1.2 环境变量

#java
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

1.1.3 配置JDK

tar -zxvf 你的jdk.tar.gz 解压缩
mv jdk1.8xxxx /usr/local/java
vi /etc/profile 设置环境变量1.1.2
source /etc/profile 刷新修改的配置
java -version
echo $JAVA_HOME

1.2 Maven

1.2.1 下载Maven

https://maven.apache.org/download.cgi

1.2.2 环境配置

#maven
export MAVEN_HOME=/opt/apache-maven-3.9.6
export PATH=$PATH:$MAVEN_HOME/bin

注:填你的下载的版本,不一定和我一样

1.2.3 Maven 镜像仓库

  </mirrors>
	<mirror>
	<id>alimaven</id>
			<name>aliyun maven</name>
	<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf>
	</mirror>
  </mirrors>

mvn -v 查看maven版本
echo $MAVEN_HOME 查询maven放哪

2. rocket mq

2.1 下载rocket mq

https://rocketmq.apache.org/zh/docs/4.x/introduction/02quickstart
https://rocketmq.apache.org/zh/download

2.2 解压

unzip 你的mq.zip -d /opt

注:没有命令就安装命令 yum install unzip 参考

2.3 编译rocket mq

mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U 编译,第一次有点慢
cd distribution/target/rocketmq-4.9.4/rocketmq-4.9.4

打开编译后的mq路径,完整路径大概 /opt/rocketmq-all-4.9.4-source-release/distribution/target/rocketmq-4.9.4/rocketmq-4.9.4 仅供参考

2.4 配置rocket的jvm启动参数

2.4.1 为啥要配置?

通常linux虚拟机的内存不会太大,而rocket的jvm默认配置的启动内存都有好几个G,不一定够用。

2.4.2 哪一个配置文件?

1.rocket mq需要启动 nameserver和broker,所以需要改这两个的配置
2.本指南是下载源文件并编译,所有rocket mq是存在两份配置的,一份是源文件的配置,一份是编译后的配置文件,你想想你的java项目是不是两份配置文件。

编译后生成的配置文件路径:rocketmq-all-4.9.4-source-release/distribution/target/rocketmq-4.9.4/rocketmq-4.9.4/bin ,里面有runserver.sh 和runbroker.sh。
主要修改其中的-Xms -Xmx -Xmn ,可以改成256m。

改下面的那个

2.5 启动NameServer

启动namesrv

nohup sh bin/mqnamesrv &

验证namesrv是否启动成功

tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success…

2024-05-03 20:31:11 INFO main - tls.client.keyPassword = null
2024-05-03 20:31:11 INFO main - tls.client.certPath = null
2024-05-03 20:31:11 INFO main - tls.client.authServer = false
2024-05-03 20:31:11 INFO main - tls.client.trustCertPath = null
2024-05-03 20:31:11 INFO main - Using JDK SSL provider
2024-05-03 20:31:12 INFO main - SSLContext created for server
2024-05-03 20:31:12 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2024-05-03 20:31:12 INFO main - The Name Server boot success. serializeType=JSON
2024-05-03 20:31:12 INFO FileWatchService - FileWatchService service started
2024-05-03 20:31:12 INFO NettyEventExecutor - NettyEventExecutor service started

2.6 启动Broker(参考官网记得把Broker.log改成小写)

先启动broker

nohup sh bin/mqbroker -n localhost:9876 &

验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a

tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a,192.169.1.2:10911] boot success…

2024-05-03 20:35:32 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2024-05-03 20:35:32 INFO FileWatchService - FileWatchService service started
2024-05-03 20:35:32 INFO main - Try to start service thread:PullRequestHoldService started:false lastThread:null
2024-05-03 20:35:32 INFO PullRequestHoldService - PullRequestHoldService service started
2024-05-03 20:35:32 INFO main - Try to start service thread:TransactionalMessageCheckService started:false lastThread:null
2024-05-03 20:35:32 INFO brokerOutApi_thread_1 - register broker[0]to name server localhost:9876 OK
2024-05-03 20:35:32 INFO main - The broker[localhost.localdomain, 192.168.37.130:10911] boot success. serializeType=JSON and name server is localhost:9876
2024-05-03 20:35:41 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
2024-05-03 20:35:41 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes
2024-05-03 20:35:42 INFO brokerOutApi_thread_2 - register broker[0]to name server localhost:9876 OK
[root@localhost rocketmqlogs]# ls
broker_default.log  filter.log           namesrv.log     stats.log       transaction.log
broker.log          lock.log             protection.log  storeerror.log  watermark.log
commercial.log      namesrv_default.log  remoting.log    store.log
[root@localhost rocketmqlogs]# 

3. 结束及可能遇到的问题

发送消息,关闭服务等操作见官网“快速开始”即可:https://rocketmq.apache.org/zh/docs/4.x/introduction/02quickstart

按照这个流程一般没啥问题,耐心,细心。
常见问题诸如:找不到类(java环境变量是否正确),明明改了配置升了内存却还是提示内存不够(改错配置,改到源文件配置去了,就是 /distribution/bin 目录下的配置)

还有其他问题欢迎评论区咨询。

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值