RocketMQ4.5.1兩主兩從集羣部署

RockerMQ簡介

RocektMQ是阿里巴巴在2012年開源的一個純java、分佈式、隊列模型的第三代消息中間件,不僅在傳統高頻交易鏈路有着低延遲的出色表現,在實時計算等大數據領域也有着不錯的吞吐。


2016年11月11號,雙十一大促見證了RocketMQ低延遲存儲架構的成功試水,99.996%的延遲落在了10ms以內,極個別由於GC引發的停頓在50ms以內,其高性能、低延時和高可靠的特性承載了近年來雙十一17萬筆/秒的交易峯值,在整個生產鏈路上都有着穩定和出色的表現。其在同年捐贈給Apache後正式進入孵化期。並於2017年9月RocketMQ正式從Apache社區正式畢業,成爲Apache頂級項目。


服務器配置表

ip地址部署角色模式
192.168.1.20Nameserver1,Brokerserver1Master1
192.168.1.20Nameserver1,Brokerserver1Master2-Slave
192.168.1.21Nameserver2,Brokerserver2Master2
192.168.1.21Nameserver2,Brokerserver2Master1-Slave


系統部署架構圖

image.png


分別修改20 和21的服務器hosts 文件

$sudo vim /etc/hosts
IP                NAME
192.168.1.20      nameserver1
192.168.1.20      master1
192.168.1.20      master1-slave1
192.168.1.21      nameserver2
192.168.1.21      master2
192.168.1.21      master2-slave2
下載官方源碼
下載地址 
$unzip rocketmq-all-4.5.1-bin-release.zip -d /workspace/

分別在20和21兩臺服務器上創建持久化存儲目錄
Msater 目錄設置
mkdir /data/rocketMQ-2m2s/store
mkdir /hdata/rocketMQ-2m2s/store/commitlog
mkdir /data/rocketMQ-2m2s/store/consumequeue
mkdir /data/rocketMQ-2m2s/store/index

Slave目錄設置
mkdir /data/rocketMQ-2m2s/store-s
mkdir /hdata/rocketMQ-2m2s/store-s/commitlog
mkdir /data/rocketMQ-2m2s/store-s/consumequeue
mkdir /data/rocketMQ-2m2s/store-s/index

RocketMQ配置文件

20服務器配置

sudo vim /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-a.properties

sudo vim /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-b-s.properties


21服務器配置

sudo vim /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-b.properties

sudo vim /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-a-s.properties


20服務器 broker-a.properties配置文件


#所屬集羣名字

brokerClusterName=rocketmq-cluster

#broker名字,注意此處不同的配置文件填寫的不一樣

brokerName=broker-a

#0 表示 Master,>0 表示 Slave

brokerId=0

#nameServer地址,分號分割

namesrvAddr=192.168.1.20:9876;192.168.1.21:9876

#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數

defaultTopicQueueNums=4

#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉

autoCreateTopicEnable=true

#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉

autoCreateSubscriptionGroup=true

#Broker 對外服務的監聽端口

listenPort=10911

haListenPort=10912

#刪除文件時間點,默認凌晨 4點

deleteWhen=04

#文件保留時間,默認 48 小時

fileReservedTime=18

#commitLog每個文件的大小默認1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每個文件默認存30W條,根據業務情況調整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#檢測物理文件磁盤空間

diskMaxUsedSpaceRatio=88

#存儲路徑

storePathRootDir=/data/rocketMQ-2m2s/store

#commitLog 存儲路徑

storePathCommitLog=/data/rocketMQ-2m2s/store/commitlog

#消費隊列存儲路徑存儲路徑

storePathConsumeQueue=/data/rocketMQ-2m2s/store/consumequeue

#消息索引存儲路徑

storePathIndex=/data/rocketMQ-2m2s/store/index

#checkpoint 文件存儲路徑

storeCheckpoint=/data/rocketMQ-2m2s/store/checkpoint

#abort 文件存儲路徑

abortFile=/data/rocketMQ-2m2s/store/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#Broker 的角色

#- ASYNC_MASTER 異步複製Master

#- SYNC_MASTER 同步雙寫Master

#- SLAVE

brokerRole=SYNC_MASTER

#刷盤方式

#- ASYNC_FLUSH 異步刷盤

#- SYNC_FLUSH 同步刷盤

flushDiskType=ASYNC_FLUSH

#checkTransactionMessageEnable=false

#發消息線程池數量

#sendMessageThreadPoolNums=128

#拉消息線程池數量

#pullMessageThreadPoolNums=128

#強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤

brokerIP1=192.168.1.20


21服務器 broker-a-s.properties配置文件


#所屬集羣名字

brokerClusterName=rocketmq-cluster

#broker名字,注意此處不同的配置文件填寫的不一樣

brokerName=broker-a

#0 表示 Master,>0 表示 Slave

brokerId=1

#nameServer地址,分號分割

namesrvAddr=192.168.1.20:9876;192.168.1.21:9876

#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數

defaultTopicQueueNums=4

#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉

autoCreateTopicEnable=true

#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉

autoCreateSubscriptionGroup=true

#Broker 對外服務的監聽端口

listenPort=10923

haListenPort=10924

#刪除文件時間點,默認凌晨 4點

deleteWhen=04

#文件保留時間,默認 48 小時

fileReservedTime=18

#commitLog每個文件的大小默認1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每個文件默認存30W條,根據業務情況調整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#檢測物理文件磁盤空間

diskMaxUsedSpaceRatio=88

#存儲路徑

storePathRootDir=/data/rocketMQ-2m2s/store-s

#commitLog 存儲路徑

storePathCommitLog=/data/rocketMQ-2m2s/store-s/commitlog

#消費隊列存儲路徑存儲路徑

storePathConsumeQueue=/data/rocketMQ-2m2s/store-s/consumequeue

#消息索引存儲路徑

storePathIndex=/data/rocketMQ-2m2s/store-s/index

#checkpoint 文件存儲路徑

storeCheckpoint=/data/rocketMQ-2m2s/store-s/checkpoint

#abort 文件存儲路徑

abortFile=/data/rocketMQ-2m2s/store-s/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushConsumeQueueLeastPages=2#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#Broker 的角色

#- ASYNC_MASTER 異步複製Master

#- SYNC_MASTER 同步雙寫Master

#- SLAVE

brokerRole=SLAVE

#刷盤方式

#- ASYNC_FLUSH 異步刷盤

#- SYNC_FLUSH 同步刷盤

flushDiskType=ASYNC_FLUSH

#checkTransactionMessageEnable=false

#發消息線程池數量

#sendMessageThreadPoolNums=128

#拉消息線程池數量

#pullMessageThreadPoolNums=128

#強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤

brokerIP1=192.168.1.21



21服務器 broker-b.properties配置文件


#所屬集羣名字

brokerClusterName=rocketmq-cluster

#broker名字,注意此處不同的配置文件填寫的不一樣

brokerName=broker-b

#0 表示 Master,>0 表示 Slave

brokerId=0

#nameServer地址,分號分割

namesrvAddr=192.168.1.20:9876;192.168.1.21:9876

#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數

defaultTopicQueueNums=4

#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉

autoCreateTopicEnable=true

#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉

autoCreateSubscriptionGroup=true

#Broker 對外服務的監聽端口

listenPort=10911

haListenPort=10912

#刪除文件時間點,默認凌晨 4點

deleteWhen=04

#文件保留時間,默認 48 小時

fileReservedTime=18

#commitLog每個文件的大小默認1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每個文件默認存30W條,根據業務情況調整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#檢測物理文件磁盤空間

diskMaxUsedSpaceRatio=88

#存儲路徑

storePathRootDir=/data/rocketMQ-2m2s/store

#commitLog 存儲路徑

storePathCommitLog=/data/rocketMQ-2m2s/store/commitlog

#消費隊列存儲路徑存儲路徑

storePathConsumeQueue=/datarocketMQ-2m2s/store/consumequeue

#消息索引存儲路徑

storePathIndex=/data/rocketMQ-2m2s/store/index

#checkpoint 文件存儲路徑

storeCheckpoint=/data/rocketMQ-2m2s/store/checkpoint

#abort 文件存儲路徑

abortFile=/data/rocketMQ-2m2s/store/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#Broker 的角色

#- ASYNC_MASTER 異步複製Master

#- SYNC_MASTER 同步雙寫Master

#- SLAVE

brokerRole=SYNC_MASTER

#刷盤方式

#- ASYNC_FLUSH 異步刷盤

#- SYNC_FLUSH 同步刷盤

flushDiskType=ASYNC_FLUSH

#checkTransactionMessageEnable=false

#發消息線程池數量

#sendMessageThreadPoolNums=128

#拉消息線程池數量

#pullMessageThreadPoolNums=128

#強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤

brokerIP1=192.168.1.21



20服務器 broker-b-s.properties配置文件

#所屬集羣名字

brokerClusterName=rocketmq-cluster

#broker名字,注意此處不同的配置文件填寫的不一樣

brokerName=broker-b

#0 表示 Master,>0 表示 Slave

brokerId=1

#nameServer地址,分號分割

namesrvAddr=192.168.1.20:9876;192.168.1.21:9876

#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數

defaultTopicQueueNums=4

#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉

autoCreateTopicEnable=true

#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉

autoCreateSubscriptionGroup=true

#Broker 對外服務的監聽端口

listenPort=10923

haListenPort=10924

#刪除文件時間點,默認凌晨 4點

deleteWhen=04

#文件保留時間,默認 48 小時

fileReservedTime=18

#commitLog每個文件的大小默認1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每個文件默認存30W條,根據業務情況調整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#檢測物理文件磁盤空間

diskMaxUsedSpaceRatio=88

#存儲路徑

storePathRootDir=/data/rocketMQ-2m2s/store-s

#commitLog 存儲路徑

storePathCommitLog=/data/rocketMQ-2m2s/store-s/commitlog

#消費隊列存儲路徑存儲路徑

storePathConsumeQueue=/data/rocketMQ-2m2s/store-s/consumequeue

#消息索引存儲路徑

storePathIndex=/data/rocketMQ-2m2s/store-s/index

#checkpoint 文件存儲路徑

storeCheckpoint=/home/rocketMQ/ZHF/rocketMQ-2m2s/store-s/checkpoint

#abort 文件存儲路徑

abortFile=/data/rocketMQ-2m2s/store-s/abort

#限制的消息大小

maxMessageSize=65536

#flushCommitLogLeastPages=4

#flushConsumeQueueLeastPages=2

#flushCommitLogThoroughInterval=10000

#flushConsumeQueueThoroughInterval=60000

#Broker 的角色

#- ASYNC_MASTER 異步複製Master

#- SYNC_MASTER 同步雙寫Master

#- SLAVE

brokerRole=SLAVE

#刷盤方式

#- ASYNC_FLUSH 異步刷盤

#- SYNC_FLUSH 同步刷盤

flushDiskType=ASYNC_FLUSH

#checkTransactionMessageEnable=false

#發消息線程池數量

#sendMessageThreadPoolNums=128

#拉消息線程池數量

#pullMessageThreadPoolNums=128

#強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤

brokerIP1=192.168.1.20


啓動參數設置

RocketMQ啓動文件位於/workspace/rocketmq-all-4.5.1-bin-release/bin/目錄下,Linux中nameserver啓動文件爲:mqnamesrv,broker啓動文件爲:mqbroker,mqnamesrv和mqbroker啓動文件分別調用了runserver.sh和runbroker.sh文件,這兩個文件分別設置了nameserver和broker的啓動內存,目前內存啓動參數分別爲nameserver啓動內存4G,最大內存4G,新生代2G,broker啓動內存8G,最大內存8G,新生代4G。


啓動Nameserver

分別啓動20、21的Nameserver

cd /workspace/rocketmq-all-4.5.1-bin-release/bin/

nohup sh mqnamesrv &


啓動Broker

20上Master啓動:

nohup sh mqbroker -c /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-a.properties &

21上Master啓動:

nohup sh mqbroker -c /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-b.properties &

20上Slave啓動:

nohup sh mqbroker -c /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-b-s.properties &

21上Slave啓動:

nohup sh mqbroker -c /workspace/rocketmq-all-4.5.1-bin-release/conf/2m-2s-async/broker-a-s.properties &

至此,Nameserver、Broker啓動完成,可以用jobs命令查看當前運行進程,如下是服務端相關shutdown,即在bin目錄下:

sh mqshutdown namesrv

sh mqshutdown broker


RocketMQ監控平臺部署

Apache版的RocketMQ管理界面部署工具可以從github上下載源碼,地址:https://github.com/apache/rocketmq-externals,部署流程如下


修改配置文件,關聯rocketMQ集羣到管理界面


首先解壓並進入解壓後rockemq-externals-master目錄rocketmq-externals-master/rocketmq-externals-master/rocketmq-console/src/main/resources,修改目錄下application.properties配置文件

rocketmq.config.nameservAddr=192.168.1.20:9876,192.168.1.21:9876

rocketmq.config.dataPath=/data/rocketMQ-2m2s

然後編譯打包成rocketmq-console-ng-1.0.0.jar 上傳到服務器

運行jar包

nohup java -jar rocketmq-console-ng-1.0.0.jar -Xms512m -Xmx512m -Xmn256m -XX:MaxMetaspaceSize=64m -XX:MetaspaceSize=64m > /dev/null &

訪問管理界面

瀏覽器輸入:http://192.168.1.20:8080/回車顯示監控界面


image.png



































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