Linux搭建RocketMQ

Linux搭建RocketMQ

一.下载RocketMQ

wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.7.0.tar.gz

二.解压

tar -zxvf rocketmq-all-4.7.0.tar.gz

三.编译项目

#进入rocketmq-4.7.0目录
cd rocketmq-4.7.0
#开始编译,注意maven环境要搭建好  如何没搭建Maven可查看我写的安装Maven那一篇博客
mvn -Prelease-all -DskipTests clean install -U

编译时如果出现JDK错误

1.查看系统是否自带JDK 
java -version
如果有需要卸载,先查询自带JDk名称
rpm -qa | grep java
然后使用命令 rpm -e --nodeps + 系统自带的jdk名 来删除系统自带的jdk
如:
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
再次键入命令 java -version 出现Bash:java 未找到命令表示删除成功
2.安装JDK
yum install -y java-1.8.0-openjdk-devel.x86_64
安装成功再次输入编译命令

出现以下结果则表明编译成功
在这里插入图片描述

四.启动服务

添加rocketmq环境变量配置,执行vim /etc/profile

#请确认好路径,别填错了
export rocketmq=/root/axs/rocketMq/rocketmq-all-4.7.0/distribution/target/rocketmq-4.7.0/rocketmq-4.7.0
export PATH=$PATH:$rocketmq/bin
 
#配置服务地址
export NAMESRV_ADDR=127.0.0.1:9876

刷新配置,让配置生效

source /etc/profile

可以对runserver.sh和runbroker.sh进行修改,降低配置

#进入bin目录
cd /root/axs/rocketMq/rocketmq-all-4.7.0/distribution/target/rocketmq-4.7.0/rocketmq-4.7.0/bin
 
#编辑runserver.sh
vim runserver.sh 
#找到JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
#修改成可接受范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx521m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
 
#编辑runbroker.sh
vim runbroker.sh 
#找到JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
#修改成可接受范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"

执行测试

#启动nameserver,在bin的上一级目录
nohup sh bin/mqnamesrv 1>/dev/null 2>&1 &

#启动broker
nohup sh bin/mqbroker -n localhost:9876 1>/dev/null 2>&1 &
broker停止命令:
./bin/mqshutdown broker
nameserver停止命令:
./bin/mqshutdown namesrv

在bin目录下执行(打开两个窗体):
生产者发送消息:
sh tools.sh org.apache.rocketmq.example.quickstart.Producer

消费者接受消息:
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

出现下图则说明发送与接收成功
在这里插入图片描述
在这里插入图片描述
关闭服务

sh mqshutdown broker
sh mqshutdown namesrv

五.如果需要远程发送消息,则需要配置rocketMq broker

cd /root/axs/rocketMq/rocketmq-all-4.7.0/distribution/target/rocketmq-4.7.0/rocketmq-4.7.0
echo "brokerIP1=外网IP" > broker.properties
进入broker.properties文件

在执行启动命令
nohup sh bin/mqbroker -c /root/axs/rocketMq/rocketmq-all-4.7.0/distribution/target/rocketmq-4.7.0/rocketmq-4.7.0/broker.properties >/dev/null 2>&1 &

进入broker.properties文件

brokerClusterName=rocketmq-cluster
# broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
# 0 表示Master,>0 表示Slave
brokerId=0
# nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876
# 在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
# 是否允许Broker 自动创建Topic, 建议线下开启, 线上关闭
autoCreateTopicEnable=true
# 是否允许Broker 自动创建订阅组, 建议线下开启, 线上关闭
autoCreateSubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10911
# 删除文件时间点,默认是凌晨4点
deleteWhen=04
# 文件保留时间,默认是48小时
fileReservedTime=48
# commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每个文件默认存30w条, 根据业务情况调整
mapedFileSizeConsumeQueue=30000
# destroyMapedFileIntervalForcibly=12000
# redeleteHangedFileInterval=12000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir=/usr/local/server/mq/rocketmq/store
# commitLog存储路径
storePathCommitLog=/usr/local/server/mq/rocketmq/store/commitlog
# 消息队列储存路径
storePathConsumeQueue=/usr/local/server/mq/rocketmq/store/consumequeue
# 消息索引粗存路径
storePathIndex=/usr/local/server/mq/rocketmq/store/index
# checkpoint 文件储存路径
storeCheckpoint=/usr/local/server/mq/rocketmq/store/checkpoint
# abort 文件存储路径
abortFile=/usr/local/server/mq/rocketmq/store/abort
# 限制的消息大小
maxMessageSize=65536
# flushCommitLogLeastPages=4
# flushConsumeQueueLeastPages=2
# flushCommitLogThoroughInterval=10000
# flushConsumeQueueThoroughInterval=60000
# Broker的角色
# -ASYNC_MASTER 异步复制Master
# -SYNC_MASTER 同步双写Master
# -SLAVE
brokerRole=ASYNC_MASTER
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# checkTransactionMessageEnable=false
# 发消息线程池数量
# sendMessageTreadPoolNums=128
# 拉消息线程池数量
# pullMessageTreadPoolNums=128lushDiskType=ASYNC_FLUSHH

在执行启动命令

nohup sh bin/mqbroker -c /root/axs/rocketMq/rocketmq-all-4.7.0/distribution/target/rocketmq-4.7.0/rocketmq-4.7.0/broker.properties >/dev/null 2>&1 &

六.可视化管理页面安装

1.下载代码

git clone https://github.com/apache/rocketmq-externals
//如何没有安装git 先安装Git在执行
yum install -y git

2.修改配置文件

#进入文件配置目录
cd /root/axs/rocketMq/rocketmq-externals/rocketmq-console/src/main/resources
#编辑文本
vim application.properties
 
 
#修改如下配置
server.port=8085
#rocket服务地址
rocketmq.config.namesrvAddr=127.0.0.1:9876
#数据路径,自己配置
rocketmq.config.dataPath=/tmp/rocketmq-console/data

3.使用Maven打包

cd /root/axs/rocketMq/rocketmq-externals/rocketmq-console

mvn clean package -Dmaven.test.skip=true

4.运行

#进入编译文件目录
cd target/
 
#启动项目
java -jar rocketmq-console-ng-2.0.0.jar --server.port=8085 --rocketmq.config.namesrvAddr=127.0.0.1:9876 &

5.访问网页
我的是 http:39...*:8085
在这里插入图片描述
常用命令

查看集群情况 ./mqadmin clusterList -n 127.0.0.1:9876
查看 broker 状态 ./mqadmin brokerStatus -n 127.0.0.1:9876 -b 172.20.1.138:10911 (注意换成你的 broker 地址)
查看 topic 列表 ./mqadmin topicList -n 127.0.0.1:9876
查看 topic 状态 ./mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic (换成你想查询的 topic)
查看 topic 路由 ./mqadmin topicRoute -n 127.0.0.1:9876 -t MyTopic

猜你喜欢

转载自blog.csdn.net/weixin_43851064/article/details/109639666
今日推荐