一、下载
首先去github下载对应的版本:点击跳转,右键复制下载链接,也可以自行使用上传工具传包
https://codeload.github.com/apache/rocketmq/tar.gz/refs/tags/rocketmq-all-4.9.3
二、执行命令
下载
wget https://codeload.github.com/apache/rocketmq/tar.gz/refs/tags/rocketmq-all-4.9.3
解压
tar -zxvf rocketmq-all-4.9.3
三、maven的安装
查询是否安装了maven
mvn -v
如果没有安装请参考下链接:
四、编译rocketmq
在rocketmq目录下执行
cd /tool/rocketmq/rocketmq-rocketmq-all-4.9.3 (根据自己rocketmq的解压路径来)
执行编译语句:
mvn -Prelease-all -DskipTests clean install -U
可能编译需等一会,编译成功显示如下:
在rocketmq目录中,进入编译后的rocketmq目录
cd distribution/target/rocketmq-4.9.3/rocketmq-4.9.3
启动命令:
server启动:注意先创建日志目录
nohup sh bin/mqnamesrv > /mydata/rocketmq/nameserver.log 2>&1 &
broker启动:
nohup sh bin/mqbroker -n 127.0.0.1:9876 -c conf/broker.conf autoCreateTopicEnable=true > /mydata/rocketmq/broker.log 2>&1 &
通过名称查询是否启动
jps
如果包含NamesrvStartup和BrokerStartup说明启动成功
如果没启动成功查看日志
cat /mydata/rocketmq/broker.log
发现报如下错:
注:此错为内存不足,rocketmq默认的运行内存非常大我们需要设置一下
找到bin目录下的runserver.sh、runbroker.sh 、tools.sh
打开runserver.sh
vim runserver.sh
修改如下:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
打开runbroker.sh
vim runbroker.sh
修改如下:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
打开tools.sh
vim tools.sh
修改如下:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
启动命令:
nohup sh bin/mqnamesrv > /mydata/rocketmq/nameserver.log 2>&1 &
nohup sh bin/mqbroker -n 127.0.0.1:9876 -c conf/broker.conf autoCreateTopicEnable=true > /mydata/rocketmq/broker.log 2>&1 &
关闭服务:
关闭nameserver服务
sh bin/mqshutdown namesrv
关闭broker服务
sh bin/mqshutdown broker
如果测试链接不上看一下配置文件:
cd conf/
mv broker.conf broker.conf.bak
vi broker.conf
#ip为服务器内网地址,port可自由设置一般为9876
namesrvAddr=xxx.xxx.x.xx:9876
messageIndexSafe=true
#是否允许Broker 自动创建。Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
waitTimeMillsInSendQueue=5000
#发送消息线程池数量
sendMessageThreadPoolNums=64
useReentrantLockWhenPutMessage=true
defaultReadQueueNums = 16
defaultWriteQueueNums = 16
#ip设置外网ip,不需要连接外网的话,可以在参数前面加#注释掉
#brokerIP1=ip(外网ip)
#默认值为DefaultCluster,可以修改为broker所属的哪个集群
brokerClusterName=DefaultCluster
#原始值为本机主机名,Broker名称
brokerName=broker-a
#BrokerId,必须是大等于 0 的整数,0 表示Master,>0 表示 Slave,一个 Master 可以挂多个 Slave,Master 与 Slave通过 BrokerName 来配对,原始值为0
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
#port可自由设置,一般设置10911
listenPort=10911
#存储路径
#storePathRootDir=/mydata/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/mydata/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/mydata/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/mydata/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/mydata/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/mydata/rocketmq/store/abort
安装可视化客户端:
在开源项目 rocketmq-dashboard
中提供了rocketmq 的管理界面: 地址为:
github 在国内访问缓慢, 也可以使用码云的镜像项目, 地址为: mirrors_apache/rocketmq-dashboard
解压:
unzip rocketmq-dashboard-master.zip
如果提示没有unzip指令,要先安装
yum install unzip
打包:
# 进入控制台项目,将工程打成jar包 (不成功多打几次)
mvn clean package -Dmaven.test.skip=true # 启动控制台
启动:
java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar --server.port=8086 --rocketmq.config.namesrvAddr=ip:9876
验证结果如下:
RocketMq的存储结构引用: