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

 

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