Linux安装rocketMQ步骤(单机--集群模式)以及rocketMQ基本命令的使用

1、编写目的

介绍RocketMq的部署步骤、运行步骤和RocketMq接入接出的配置说明以及组件使用说明,主要应用于使用RocketMq进行消息发送以及消费的场景。

2、安装部署

2.1、硬件要求

Cpu8核、内存12g、硬盘1t      单机版要求可降低一半。

2.2、软件要求

1、Linux系统。

2、JDK1.8或更高版本 64位。

3、Maven 3.X         --可不安装maven

2.3、安装部署

1、检查JDK版本,如果不是1.8 - 64位需要先安装JDK之后再进行下面步骤,如果是就继续后续步骤

输入命令

java -version 

2、下载rocketmq

网址输入:http://mirrors.hust.edu.cn/apache/rocketmq

点击rocketmq-all-4.7.1-bin-release.zip 下载

 

2.3.1、单机版安装

1、配置hosts

-- 输入命令:
hostname

--Linux 7版本也可输入命令:
hostnamectl

2、修改配置文件,使用root权限修改

vi /etc/hosts

3、配置文件中输入服务器 IP 和上面查询到的服务器名称然后保存退出。

4、上传下载好的rocketMQ包到服务器

可创建一个新的文件夹存放rocketMQ,我是在根目录创建了一个data目录

mkdir data

5、解压rocketMQ包

输入命令:

unzip rocketmq-all-4.7.1-bin-release.zip

修改解压后的文件名,方便后续操作

输入命令:

mv rocketmq-all-4.7.1-bin-release rocketmq

6、创建文件夹

输入命令:

mkdir -p /data/store/commitlog
mkdir -p /data/rocketmq/store/commitlog
mkdir -p /data/rocketmq/store/consumequeue
mkdir -p /data/rocketmq/store/index

7、修改配置文件

输入命令:

vi  /data/rocketmq/conf/2m-2s-async/broker-a.properties

将原有内容删除,将下面代码块复制进去,IP部分需要改成自己的服务器IP其余可根据自己需求更改也可已使用现在的。

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a 
#0 表示 Master,>0 表示 Slave
brokerId=0
brokerIP1=192.168.25.137
#nameServer地址,分号分割
namesrvAddr=192.168.25.137: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 
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/data/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER  异步复制Master
#- SYNC_MASTER  同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH  异步刷盘 #- SYNC_FLUSH  同步刷盘 
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false

复制进文件之后保存退出。

8、修改日志配置文件,为的是使我们可以更清晰的查看日志

mkdir -p /data/rocketmq/logs 
cd /data/rocketmq/conf && sed -i 's#${user.home}#/data/rocketmq#g' *.xml

9、启动rocketMQ

先启动nameserver,后启动broker。

9.1、启动nameserver,命令如下:

cd /data/rocketmq/bin

nohup sh mqnamesrv &

查看启动日志,输入命令:

tail -f -n 500 /data/rocketmq/logs/rocketmqlogs/namesrv.log

9.2、启动broker,命令如下:

cd /data/rocketmq/bin

nohup sh mqbroker -c /data/rocketmq/conf/2m-2s-async/broker-a.properties &

查看启动日志,输入命令:

tail -f -n 500 /data/rocketmq/logs/rocketmqlogs/broker.log

10、使用命令模拟消息消费,可以看出是否可以正常消费

export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Producer

sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

2.3.2、集群模式安装

1、服务器-两台,部署双主双从

192.168.25.15   、192.168.25.16

分别进入192.168.25.15和192.168.25.16服务器。以下所有操作均是在两台服务器上进行的

2、配置hosts

获取服务器名称命令:

-- 输入命令:
hostname
 
--Linux 7版本也可输入命令:
hostnamectl

3、修改配置文件,使用root权限修改

--输入命令
vi /etc/hosts

修改配置文件:(192.168.25.15, 192.168.25.16两台服务器都修改)

4、上传下载好的rocketMQ包到服务器

可创建一个新的文件夹存放rocketMQ,我是在根目录创建了一个data目录,两台服务器都需要操作

mkdir data

两台服务器都上传

5、解压rocketMQ包,以下命令需根据对应的 IP服务器上执行

A主(192.168.25.15)  解压  -  输入命令:

cd  /data
unzip rocketmq-all-4.7.1-bin-release.zip
mv  rocketmq-all-4.7.1-bin-release  rocketmq

A从 (192.168.25.16)  解压  -  输入命令:

cd  /data
unzip rocketmq-all-4.7.1-bin-release.zip
mv  rocketmq-all-4.7.1-bin-release  rocketmq-s

B主(192.168.25.16)  解压  -  输入命令:

cd  /data
unzip rocketmq-all-4.7.1-bin-release.zip
mv  rocketmq-all-4.7.1-bin-release  rocketmq

B从 (192.168.25.15)  解压  -  输入命令:

cd  /data
unzip rocketmq-all-4.7.1-bin-release.zip
mv rocketmq-all-4.7.1-bin-release  rocketmq-s

6、创建文件夹(两台服务器)

A 主  B主
mkdir -p /data/store/commitlog
mkdir -p /data/rocketmq/store/commitlog
mkdir -p /data/rocketmq/store/consumequeue
mkdir -p /data/rocketmq/store/index
A从 B从
mkdir -p /data/rocketmq-s/store/commitlog
mkdir -p /data/rocketmq-s/store/consumequeue
mkdir -p /data/rocketmq-s/store/index

7、修改MQ配置文件(两台机器),需在对应的服务器配置

A-master:( 192.168.25.15)

cd  /data/rocketmq/conf/2m-2s-async/
vi  broker-a.properties

将原有的内容删除,替换下面的配置

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a 
#0 表示 Master,>0 表示 Slave
brokerId=0
brokerIP1=192.168.25.15
#nameServer地址,分号分割
namesrvAddr=192.168.25.15:9876;192.168.25.16: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 
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/data/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER  异步复制Master
#- SYNC_MASTER  同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH  异步刷盘 #- SYNC_FLUSH  同步刷盘 
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false

B-slave:( 192.168.25.15)

cd  /data/rocketmq-s/conf/2m-2s-async/
vi  broker-b-s.properties

将原有的内容删除,替换下面的配置

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b 
#0 表示 Master,>0 表示 Slave
brokerId=1
brokerIP1=192.168.25.15
#nameServer地址,分号分割
namesrvAddr=192.168.25.15:9876;192.168.25.16:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10920
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000 
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/rocketmq-s/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/rocketmq-s/store/consumequeue
#消息索引存储路径
storePathIndex=/data/rocketmq-s/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq-s/store/checkpoint
#abort 文件存储路径
abortFile=/data/rocketmq-s/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER  异步复制Master
#- SYNC_MASTER  同步双写Master
#- SLAVE
brokerRole= SLAVE
#刷盘方式
#- ASYNC_FLUSH  异步刷盘 #- SYNC_FLUSH  同步刷盘 
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false

B-master:( 192.168.25.16)

cd  /data/rocketmq/conf/2m-2s-async/
vi  broker-b.properties

将原有的内容删除,替换下面的配置

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b 
#0 表示 Master,>0 表示 Slave
brokerId=0
brokerIP1=192.168.25.16
#nameServer地址,分号分割
namesrvAddr=192.168.25.15:9876;192.168.25.16: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 
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/data/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/data/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/data/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER  异步复制Master
#- SYNC_MASTER  同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH  异步刷盘 #- SYNC_FLUSH  同步刷盘 
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false

A-slave:(192.168.25.16)

cd  /data/rocketmq-s/conf/2m-2s-async/
vi  broker-a-s.properties

将原有的内容删除,替换下面的配置

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a 
#0 表示 Master,>0 表示 Slave
brokerId=1
brokerIP1=192.168.25.16
#nameServer地址,分号分割
namesrvAddr=192.168.25.15:9876;192.168.25.16:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10920
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000 
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/rocketmq-s/store
#commitLog 存储路径
storePathCommitLog=/data/rocketmq-s/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/rocketmq-s/store/consumequeue
#消息索引存储路径
storePathIndex=/data/rocketmq-s/store/index
#checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq-s/store/checkpoint
#abort 文件存储路径
abortFile=/data/rocketmq-s/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER  异步复制Master
#- SYNC_MASTER  同步双写Master
#- SLAVE
brokerRole= SLAVE
#刷盘方式
#- ASYNC_FLUSH  异步刷盘 #- SYNC_FLUSH  同步刷盘 
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false

8、修改日志配置文件

主
mkdir -p /data/rocketmq/logs
cd /data/rocketmq/conf && sed -i 's#${user.home}#/data/rocketmq#g' *.xml
从
mkdir -p /data/rocketmq-s/logs
cd /data/rocketmq-s/conf && sed -i 's#${user.home}#/data/rocketmq-s#g' *.xml

9、启动MQ(两台机器)

先启动nameserver,后启动broker。

启动nameserver,命令如下:

cd /data/rocketmq/bin
nohup sh mqnamesrv &

查看启动日志:

tail -f -n 500 /data/rocketmq/logs/rocketmqlogs/namesrv.log

启动broker,命令如下:

主
cd /data/rocketmq/bin; 
从
cd /data/rocketmq-s/bin;
A-主
nohup sh mqbroker -c /data/rocketmq/conf/2m-2s-async/broker-a.properties &
A-从
nohup sh mqbroker -c /data/rocketmq-s/conf/2m-2s-async/broker-a-s.properties &
B-主
nohup sh mqbroker -c /data/rocketmq/conf/2m-2s-async/broker-b.properties &
B-从
nohup sh mqbroker -c /data/rocketmq-s/conf/2m-2s-async/broker-b-s.properties &

查看日志:

主
tail -f -n 500 /data/rocketmq/logs/rocketmqlogs/broker.log

从
tail -f -n 500 /data/rocketmq-s/logs/rocketmqlogs/broker.log

10、所有节点都启动完成之后输入下面命令看看集群是否正常

sh mqadmin clusterList -n 192.168.25.15:9876

查看集群的启动状况:四个节点,符合预期,至此,集群初版搭建完毕

 

2.4、MQ常用命令

1、以下命令都需要再rocketMQ的bin目录下执行

--查询集群消息,集群名称、broker名称、IP-端口、MQ版本等
sh mqadmin clusterList -n localhost:9876

--查看所有topic
sh mqadmin topicList -n localhost:9876

--查看所有消费组group
 sh mqadmin consumerProgress -n localhost:9876

--增加消费者订阅组
sh mqadmin updateSubGroup -n localhost:9876 -c rocketmq-cluster -s true -d true -m true -g broker-user-prod

--查看消费者订阅组的信息堆积情况  -- Diff 为消息堆积数
sh mqadmin consumerProgress -n localhost:9876 -g broker-user-prod

--启动namesrv
nohup sh mqnamesrv &
--启动broker
nohup sh mqbroker -c /data/rocketmq/conf/2m-2s-async/broker-a.properties &

--停止MQ服务
sh mqshutdown namesrv
sh mqshutdown broker

--新增topic
sh mqadmin updateTopic –n localhost:9876 –c DefaultCluster –t topicWarning

--删除topic
sh mqadmin deleteTopic –n localhost:9876 –c DefaultCluster –t topicWarning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Male晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值