RocketMQ-环境搭建(单master模式-ubuntu版)

时间:2022-07-25
本文章向大家介绍RocketMQ-环境搭建(单master模式-ubuntu版),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、linux安装unzip软件

输入命令:

sudo apt-get install unzip

提示:如果出现

Unable to locate package

则需要先执行命令更新:

sudo apt-get update

二、添加Hosts信息

vim /etc/hosts

#内网IP
172.19.129.62 rocketmq-nameserver1
172.19.129.62 rocketmq-master1

三、上传rocketmq-all-4.4.0-bin-release.zip

  1. 将压缩包上传到目录:/home/xjf/upload-files(个人决定)
  2. 然后将压缩包解压到指定目录:
unzip rocketmq-all-4.4.0-bin-release.zip -d /opt/software
  1. cd到解压后的目录,然后创建对应的软连接(相当于快捷方式)
cd /opt/software
ln -s rocketmq-all-4.4.0-bin-release rocketmq

四、创建存储路径

mkdir /opt/software/rocketmq/store
mkdir /opt/software/rocketmq/store/commitlog
mkdir /opt/software/rocketmq/store/consumequeue
mkdir /opt/software/rocketmq/store/index

五、RocketMQ配置文件

vim /opt/software/rocketmq/conf/2m-noslave/broker-a.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=120
#commitLog 每个文件的大小默认 1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/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
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

六、修改日志配置文件

#启动日志应该会自动到这个文件夹下,我实践时却是在bin目录的$目录下(不知道原因)
mkdir -p /opt/software/rocketmq/logs

cd /opt/software/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

七、修改脚本参数

vim /opt/software/rocketmq/bin/runbroker.sh
#==============================================================================
#   开发环境 JVM Configuration 
#============================================================================== 
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:PermSize=128m - XX:MaxPermSize=320m"
vim /opt/software/rocketmq/bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m - XX:MaxPermSize=320m"

八、启动NameServer

cd /opt/software/rocketmq/bin
nohup sh mqnamesrv & (运行后可能会有中断提示,不用管,使用Ctrl+C关闭)

此时可以查看进程

jps

出现:1285 NamesrvStartup。则代表运行成功

九、启动BrokerServer A

cd /opt/software/rocketmq/bin
nohup sh mqbroker -c /opt/software/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

关闭RocketMQ服务方法: 关闭namesrv服务:

sh bin/mqshutdown namesrv

关闭broker服务:

sh bin/mqshutdown broker

十、使用RocketMQ控制台

  1. 下载rocketmq console,地址:https://github.com/apache/incubator-rocketmq-externals/tree/master/rocketmq-console。
  2. 下载源码后,找到配置文件application.properties,并按照自己需求进行配置。例如:rocketmq.config.namesrvAddr=namesrv服务地址(ip1:port;ip2:port)(使用内网的IP),此处填写为:rocketmq-nameserver1:9876
  3. 将项目打成jar包,并上传到linux的目录:/home/xjf/upload-files
  4. 后台运行线jar包并打印日志:
nohup java -jar rocketmq-console-ng-1.0.1.jar >console.out &
  1. 最后可以通过ip地址访问到MQ的控制台

借鉴于:https://blog.csdn.net/weixin_33955681/article/details/91222818