RocketMQ 4.7.0 学习笔记持续更新

一、Rocket 部署

1.下载RocketMq

https://mirror.bit.edu.cn/apache/rocketmq/4.7.0/

  1. 上传到linux服务

 

2.安装RocketMq

unzip rocket rocketmq-all-4.7.0-bin-release.zip

创建rocketmq文件夹:mkdir /usr/local/rocketmq

移动到 usr/local/rocketmq

 

3.启动 NamesServer

#启动

cd /usr/local/rocketmq/bin

nohup sh mqnamesrv &

 

#查看启动日志

tail -f ~/logs/rocketmqlogs/namesrv.log

 

 

 

4.启动Broker

# 1.启动Broker

cd /usr/local/rocketmq/bin

nohup sh mqbroker -n localhost:9876 &

#2.查看日志

tail -f ~/logs/rocketmqlogs/broker.log

 

问题描述:

RocketMQ 默认的虚拟机内存较大,启动Broker如果因为内存不足失败,修改JVM内存大小

 

默认8G 太大了!!

#编辑runbroker.sh 和 runserver.sh 修改默认JVM大小

vi runbroker.sh

vi runserver.sh

重新启动broker 启动命令在上面!

 

jps 命令查看进程

 

5.关闭RocketMQ

sh mqshutdown namesrv

sh mqshutdown broker

 

 

 

 

6.测试RocketMQ

发送消息

1.设置环境变量

export NAMESRV_ADDR=localhost:9876

2.使用安装包的Demo发送消息

cd /usr/local/rocketmq/bin

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

接收消息

1.设置环境变量

export NAMESRV_ADDR=localhost:9876

2.接收消息

cd /usr/local/rocketmq/bin

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

效果图:

 

 

二、RocketMQ集群部署(2m-2s-asyn)

一、集群部署准备

打算部署双主双从同步策略,主从复制,读写分离

 

服务器2台

192.168.3.211  master1(主1)、slave2(从2)

192.168.3.212  master2(主2)、slave1(从1)

 

按照上面RocketMq的配置教程,分别在2台主机安装上RocketMq

 

部署的时候注意主从交叉部署,防止某台主机挂掉,出主从机一起挂掉的情况。

二、192.168.3.211配置:

1.修改hosts配置

vi /etc/hosts

 

配置如下:

# nameserver

192.168.3.211 rocketmq-nameserver1

192.168.3.212 rocketmq-nameserver2

#broker

192.168.3.211 rocketmq-master1

192.168.3.211 rocketmq-slave2

192.168.3.212 rocketmq-master2

192.168.3.212 rocketmq-slave1

 

  1. 创建存储目录

cd /usr/local/rocketmq

mkdir broker-a

cd broker-a

mkdir store

cd store

mkdir commitlog

mkdir consumequeue

mkdir index

 

cd /usr/local/rocketmq

mkdir broker-b-s

cd broker-b-s

mkdir store

cd store

mkdir commitlog

mkdir consumequeue

mkdir index

3.进入配置目录

cd /usr/local/rocketmq/conf/2m-2s-sync

 

4.修改主1配置文件

vi broker-a.properties

 

配置如下:

 

#所属集群

brokerClusterName=rocketmq-cluster

brokerIP1=192.168.3.211

brokerIP2=192.168.3.211

#broker名字

brokerName=broker-a

#0表示 Master,>0表示 Slave

brokerId=0

#Broker 的角色

#- ASYNC_MASTER 异步复制Master

#- SYNC_MASTER 同步双写Master

#- SLAVE

brokerRole=SYNC_MASTER

#刷盘方式

#- ASYNC_FLUSH 异步刷盘

#- SYNC_FLUSH 同步刷盘

flushDiskType=SYNC_FLUSH

#nameServer地址

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

 

#在发送消息时,自动创建服务器不存在的topic,默认创建队列数

defaultTopicQueueNums=4

#是否允许Broker自动创建Topic,建议线下开启,线上关闭

autoCreateTopicEnable=true

#是否允许Broker自动创建订阅组

autoCreateSubscriptionGroup=true

#Broker对外服务的监听端口

listenPort=10911

#删除文件时间点,默认凌晨4点

deleteWhen=04

#文件保留时间,默认48小时

fileReservedTime=120

#commitLog每个文件的大小,默认1G

mapedFileSizeCommitLog=1073741824

#ConsueQueue每个文件默认存30W条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#监测物理文件磁盘空间

diskMaxUserdSpaceRatio=88

#存储路径

storePathRootDir=/usr/local/rocketmq/broker-a/store

#commitLog 存储路径

storePathCommitLog=/usr/local/rocketmq/broker-a/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/usr/local/rocketmq/broker-a/store/consumequeue

#消息索引存储路径

storePathIndex=/usr/local/rocketmq/broker-a/store/index

#checkpoint 文件存储路径(不要手动创建!)

storeCheckpoint=/usr/local/rocketmq/broker-a/store/checkpoint

#abort 文件存储路径(不要手动创建!)

abortFile=/usr/local/rocketmq/broker-a/store/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

 

5.修改从2配置文件

vi broker-b-s.properties

 

配置如下:

 

#所属集群名字

brokerClusterName=rocketmq-cluster

brokerIP1=192.168.3.211

#broker名字,注意此处不同的配置文件填写的不一样

brokerName=broker-b

#0 表示 Master,>0 表示 Slave

brokerId=1

#Broker 的角色

#- ASYNC_MASTER 异步复制Master

#- SYNC_MASTER 同步双写Master

#- SLAVE

brokerRole=SLAVE

#刷盘方式

#- ASYNC_FLUSH 异步刷盘

#- SYNC_FLUSH 同步刷盘

flushDiskType=ASYNC_FLUSH

#nameServer地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭

autoCreateTopicEnable=true

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=true

#Broker 对外服务的监听端口

listenPort=11011

#删除文件时间点,默认凌晨 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/broker-b-s/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/usr/local/rocketmq/broker-b-s/store/consumequeue

#消息索引存储路径

storePathIndex=/usr/local/rocketmq/broker-b-s/store/index

#checkpoint 文件存储路径(不要手动创建!)

storeCheckpoint=/usr/local/rocketmq/broker-b-s/store/checkpoint

#abort 文件存储路径(不要手动创建!)

abortFile=/usr/local/rocketmq/broker-b-s/store/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

 

 

 

 

三、192.168.3.212配置:

1.修改hosts配置

vi /etc/hosts

 

配置如下:

# nameserver

192.168.3.211 rocketmq-nameserver1

192.168.3.212 rocketmq-nameserver2

#broker

192.168.3.211 rocketmq-master1

192.168.3.211 rocketmq-slave2

192.168.3.212 rocketmq-master2

192.168.3.212 rocketmq-slave1

 

2.创建存储目录

cd /usr/local/rocketmq

mkdir broker-b

cd broker-b

mkdir store

cd store

mkdir commitlog

mkdir consumequeue

mkdir index

 

cd /usr/local/rocketmq

mkdir broker-a-s

cd broker-a-s

mkdir store

cd store

mkdir commitlog

mkdir consumequeue

mkdir index

 

3.进入配置目录

cd /usr/local/rocketmq/conf/2m-2s-sync

 

4.修改主2配置文件

vi broker-b.properties

配置如下:

 

#所属集群名字

brokerClusterName=rocketmq-cluster

brokerIP1=192.168.3.212

brokerIP2=192.168.3.212

#broker名字,注意此处不同的配置文件填写的不一样

brokerName=broker-b

#0 表示 Master,>0 表示 Slave

brokerId=0

#Broker 的角色

#- ASYNC_MASTER 异步复制Master

#- SYNC_MASTER 同步双写Master

#- SLAVE

brokerRole=SYNC_MASTER

#刷盘方式

#- ASYNC_FLUSH 异步刷盘

#- SYNC_FLUSH 同步刷盘

flushDiskType=SYNC_FLUSH

#nameServer地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2: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/broker-b/store

#commitLog 存储路径

storePathCommitLog=/usr/local/rocketmq/broker-b/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/usr/local/rocketmq/broker-b/store/consumequeue

#消息索引存储路径

storePathIndex=/usr/local/rocketmq/broker-b/store/index

#checkpoint 文件存储路径(不要手动创建!)

storeCheckpoint=/usr/local/rocketmq/broker-b/store/checkpoint

#abort 文件存储路径(不要手动创建!)

abortFile=/usr/local/rocketmq/broker-b/store/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

 

5.修改从1配置文件

vi broker-a-s.properties

 

配置如下:

 

#所属集群名字

brokerClusterName=rocketmq-cluster

brokerIP1=192.168.3.212

#broker名字,注意此处不同的配置文件填写的不一样

brokerName=broker-a

#0 表示 Master,>0 表示 Slave

brokerId=1

#nameServer地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#Broker 的角色

#- ASYNC_MASTER 异步复制Master

#- SYNC_MASTER 同步双写Master

#- SLAVE

brokerRole=SLAVE

#刷盘方式

#- ASYNC_FLUSH 异步刷盘

#- SYNC_FLUSH 同步刷盘

flushDiskType=ASYNC_FLUSH

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭

autoCreateTopicEnable=true

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=true

#Broker 对外服务的监听端口

listenPort=11011

#删除文件时间点,默认凌晨 4点

deleteWhen=04

#文件保留时间,默认 48 小时

fileReservedTime=120

#commitLog每个文件的大小默认1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每个文件默认存30W条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#检测物理文件磁盘空间

diskMaxUsedSpaceRatio=88

#存储路径

storePathRootDir=/usr/local/rocketmq/broker-a-s/store

#commitLog 存储路径

storePathCommitLog=/usr/local/rocketmq/broker-a-s/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/usr/local/rocketmq/broker-a-s/store/consumequeue

#消息索引存储路径

storePathIndex=/usr/local/rocketmq/broker-a-s/store/index

#checkpoint 文件存储路径(不要手动创建!)

storeCheckpoint=/usr/local/rocketmq/broker-a-s/store/checkpoint

#abort 文件存储路径(不要手动创建!)

abortFile=/usr/local/rocketmq/broker-a-s/store/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

 

 

四、集群启动

1.启动NameServer集群

分别在192.168.3.211和192.168.3.212启动NameServer

 

cd /usr/local/rocketmq/bin

nohup sh mqnamesrv >namesrv.log 2>&1 &

 

jps检查

 

  1. 启动Broker集群

在192.168.3.211启动master1

 

master1:

cd /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties >broker-a.log 2>&1 &

 

 

在192.168.3.212启动master2

Master2:

cd /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties >broker-b.log 2>&1 &

 

 

 

 

在192.168.3.211启动slave2

cd /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties >broker-b-s.log 2>&1 &

 

 

在192.168.3.212启动slave1

cd /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties >broker-a-s.log 2>&1 &

 

 

 

三、RocketMQ-Console部署

RocketMQ可视化管理控制台

 

Rocketmq-console 属于 rocketmq-externals的子项目

Springboot开发 -jar方式启动即可

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.Git方式下载

原始仓库: 

https://github.com/apache/rocketmq-externals.git

国内仓库

https://gitee.com/mirrors/RocketMQ-Externals.git

 

 

2.修改配置

 

3.maven打包

mvn clean package -Dmaven.test.skip=true

 

 

 

服务启动

  1. 上传至192.168.3.211服务上

 

2.启动服务

nohup java -jar rocketmq-console-ng-1.0.1.jar >rocket-console.log 2>&1 &

 

3.访问roeket-console

http://192.168.3.211:8123

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章