欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Linux搭建RocketMQ

程序员文章站 2024-01-02 13:43:16
Linux搭建RocketMQ一.下载RocketMQwget 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-a...

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
安装成功再次输入编译命令

出现以下结果则表明编译成功
Linux搭建RocketMQ

四.启动服务

添加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

出现下图则说明发送与接收成功
Linux搭建RocketMQ
Linux搭建RocketMQ
关闭服务

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
Linux搭建RocketMQ
常用命令

查看集群情况 ./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

本文地址:https://blog.csdn.net/weixin_43851064/article/details/109639666

相关标签: Linux Java

上一篇:

下一篇: