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
安装成功再次输入编译命令
出现以下结果则表明编译成功
四.启动服务
添加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
本文地址:https://blog.csdn.net/weixin_43851064/article/details/109639666
推荐阅读
-
教你使用eclipse 搭建Swt 环境的全过程
-
springboot搭建访客管理系统的实现示例
-
想用centos5.5 x64搭建lnmp生成环境,求怎么进行相关软件的版本选择
-
memcached - linux下安装php的memcache扩展
-
Oracle 11g搭建DataGuard详细步骤(物理standby所有操作总结)
-
Springboot项目的搭建教程(分离出common父依赖)
-
Windows和Linux下定时删除某天前的文件的脚本
-
Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
-
图解Linux安装Oracle
-
图片存储与浏览一例(Linux+Apache+PHP+MySQL)_php基础