溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

RocketMQ多Master模式的優(yōu)缺點(diǎn)介紹

發(fā)布時(shí)間:2021-09-08 16:20:15 來源:億速云 閱讀:209 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“RocketMQ多Master模式的優(yōu)缺點(diǎn)介紹”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

介紹:

  多Master模式,一個(gè)集群無Slave,全是Master,例如2個(gè)Master或者3個(gè)Master。

  優(yōu)點(diǎn):配置簡單,單個(gè)Master宕機(jī)或重啟維護(hù)對應(yīng)用無影響,在磁盤配置為RAID10時(shí),即使機(jī)器宕機(jī)不可恢復(fù)情況下,由于RAID10磁盤非常可靠,消息也不會丟(異步刷盤丟失少量消息,同步刷盤一條不丟)。性能最高。

  缺點(diǎn):單臺機(jī)器宕機(jī)期間,這臺機(jī)器上未被消費(fèi)的消息在機(jī)器恢復(fù)之前不可訂閱,消息實(shí)時(shí)性會收到影響

1. 服務(wù)器環(huán)境:

服務(wù)器A      
192.168.192.130
服務(wù)器B
192.168.192.131

2.編輯服務(wù)器A和服務(wù)器B的hosts文件,添加同樣的內(nèi)容

vim /etc/hosts192.168.192.130 rocketmq-nameserver1
192.168.192.130 rocketmq-master1
192.168.192.131 rocketmq-nameserver2
192.168.192.131 rocketmq-master2

3.重啟一下兩臺機(jī)器的網(wǎng)卡并且兩臺服務(wù)器相互ping一下,看是否通

重啟網(wǎng)卡$ service network restart#130上ping 131ping rocketmq-nameserver2
ping rocketmq-master2#131上ping 130ping rocketmq-nameserver1
ping rocketmq-master2

4. 上傳alibaba-rocketmq-3.2.6.tar.gz 到兩臺服務(wù)器上面的/usr/local下解壓,改名(兩個(gè)服務(wù)器操作相同)

tar -vxzf alibaba-rocketmq-3.2.6.tar.gz
mv alibaba-rocketmq-3.2.6 rocketmq

5.在兩臺服務(wù)器上面創(chuàng)建存儲路徑(兩個(gè)服務(wù)器操作相同)

mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index

6.編輯兩臺服務(wù)器上面rocketmq的配置文件(兩個(gè)服務(wù)器操作相同)

6.1 修改broker-a.properties文件

vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties#所屬集群名字
borkerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-a
#0 表示Master, >0 表示Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在發(fā)消息時(shí),自動(dòng)創(chuàng)建服務(wù)器不存在的topic,默認(rèn)創(chuàng)建的隊(duì)列數(shù)
defaultTopicQueueNums=4
#是否允許Broker自動(dòng)創(chuàng)建Topic,建議線下開啟,線上關(guān)閉
autoCreateTopicEnable=true
#是否允許Broker自動(dòng)創(chuàng)建訂閱組,建議線下開啟,線上關(guān)閉
autoCreateSubscriptionGroup=true
#Broker 對外服務(wù)的監(jiān)聽端口
listenPort=10911
#刪除文件時(shí)間點(diǎn),默認(rèn)凌晨4點(diǎn)
deleteWhen=04
#文件保留時(shí)間,默認(rèn)48小時(shí)
fileReservedTime=120
#commitLog每個(gè)文件的大小默認(rèn)1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個(gè)文件默認(rèn)存30W條,根據(jù)業(yè)務(wù)情況調(diào)整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/usr/local/rocketmq/store
#commitLog存儲路徑
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消費(fèi)隊(duì)列存儲路徑
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 異步復(fù)制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=ASYNC_MASTER

#刷盤方式
#- ASYNC_FLUSH  異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH

#checkTransactionMessageEnable=false
#發(fā)消息線程池?cái)?shù)量
#sendMessageThreadPoolNums=128
#拉消息線程池?cái)?shù)量
#pullMessageThreadPoolNums=128

6.2 修改broker-b.properties文件

vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties#所屬集群名字
borkerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-b
#0 表示Master, >0 表示Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在發(fā)消息時(shí),自動(dòng)創(chuàng)建服務(wù)器不存在的topic,默認(rèn)創(chuàng)建的隊(duì)列數(shù)
defaultTopicQueueNums=4
#是否允許Broker自動(dòng)創(chuàng)建Topic,建議線下開啟,線上關(guān)閉
autoCreateTopicEnable=true
#是否允許Broker自動(dòng)創(chuàng)建訂閱組,建議線下開啟,線上關(guān)閉
autoCreateSubscriptionGroup=true
#Broker 對外服務(wù)的監(jiān)聽端口
listenPort=10911
#刪除文件時(shí)間點(diǎn),默認(rèn)凌晨4點(diǎn)
deleteWhen=04
#文件保留時(shí)間,默認(rèn)48小時(shí)
fileReservedTime=120
#commitLog每個(gè)文件的大小默認(rèn)1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個(gè)文件默認(rèn)存30W條,根據(jù)業(yè)務(wù)情況調(diào)整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/usr/local/rocketmq/store
#commitLog存儲路徑
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消費(fèi)隊(duì)列存儲路徑
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 異步復(fù)制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=ASYNC_MASTER

#刷盤方式
#- ASYNC_FLUSH  異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH

#checkTransactionMessageEnable=false
#發(fā)消息線程池?cái)?shù)量
#sendMessageThreadPoolNums=128
#拉消息線程池?cái)?shù)量
#pullMessageThreadPoolNums=128

7.修改兩臺機(jī)器的日志配置文件(兩個(gè)服務(wù)器操作相同)

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

8.修改啟動(dòng)腳本參數(shù),JVM調(diào)優(yōu)(兩個(gè)服務(wù)器操作相同)

#broker調(diào)優(yōu)
vim /usr/local/rocketmq/bin/runbroker.sh
RocketMQ多Master模式的優(yōu)缺點(diǎn)介紹
#nameserver調(diào)優(yōu)vim /usr/local/rocketmq/bin/runserver.sh

RocketMQ多Master模式的優(yōu)缺點(diǎn)介紹

9.啟動(dòng)NameServer(兩個(gè)服務(wù)器操作相同)

cd /usr/local/rocketmq/bin
nohup sh mqnamesrv &
jps--看進(jìn)程

10.啟動(dòng)BrokerServer A 服務(wù)器A

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

netstat -ntlp
jps
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

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

11.啟動(dòng)BrokerServer B 服務(wù)器B

cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

netstat -ntlp
jps
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

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

12. 停止broker命令

cd /usr/local/rocketmq/bin

sh mqshutdown broker

13.停止nameserver命令

sh bin/mqshutdown namesrv

14.rocketMq默認(rèn)日志路徑

/root/logs/rocketmqlogs

15.關(guān)閉防火墻

systemctl stop firewalld

“RocketMQ多Master模式的優(yōu)缺點(diǎn)介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI