RocketMQ 搭建雙主雙從集群


RocketMQ 搭建雙主雙從集群

4台機器,2台部署 NameServer,4台都部署 Broker,雙主雙從(同步復制,異步刷盤)

基礎安裝教程參考:https://www.cnblogs.com/jwen1994/p/12318575.html

機器列表

192.168.159.133   Broker-a      部署nameServer 
192.168.159.130   Broker-a-s   部署nameServer    
192.168.159.131   Broker-b
192.168.159.132   Broker-b-s

1、修改 RocketMQ 啟動內存配置(4個機器都要修改,其中 runbroker.sh 修改4個,runserver.sh 修改2個)

vim runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"


啟動兩個機器的 nameserver
nohup sh bin/mqnamesrv &

2、編輯並啟動 rocketmq 命令

broker-a主節點
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &

namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
brokerClusterName=XdclassCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH

defaultTopicQueueNums=4
#是否允許自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=false

#存儲路徑,根據需求進行配置絕對路徑,默認是家目錄下面
#storePathRootDir= 
#storePathCommitLog
broker-a從節點
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &

namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
brokerClusterName=XdclassCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

defaultTopicQueueNums=4
#是否允許自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=false

#存儲路徑,根據需求進行配置絕對路徑,默認是家目錄下面
#storePathRootDir= 
#storePathCommitLog
 

broker-b主節點
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &

namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
brokerClusterName=XdclassCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH

defaultTopicQueueNums=4
#是否允許自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=false

#存儲路徑,根據需求進行配置絕對路徑,默認是家目錄下面
#storePathRootDir= 
#storePathCommitLog
 

broker-b從節點
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &

namesrvAddr=192.168.159.133:9876;192.168.159.130:9876
brokerClusterName=XdclassCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

defaultTopicQueueNums=4
#是否允許自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=false

#存儲路徑,根據需求進行配置絕對路徑,默認是家目錄下面
#storePathRootDir= 
#storePathCommitLog

注意:4台機器都需要關閉防火牆

CentOS 6.5關閉防火牆
servcie iptables stop 

centos7關閉防火牆 
systemctl stop firewalld
systemctl stop firewalld.service

雙主雙從搭建和控制台配置

注意:如果連接不了 broker,日志提示連接的端口少2位,記得檢查防火牆是否關閉

使用管控台,安裝在 server1 機器里面

修改事項
pom.xml  里面的rocketmq版本號

路徑 /usr/local/software/rocketmq-externals-master/rocketmq-console/src/main/resources

application.properties里面的nameserver

增加 rocketmq.config.namesrvAddr=192.168.159.133:9876;192.168.159.130:9876

mvn install -Dmaven.test.skip=true

java -jar rocketmq-console-ng-1.0.0.jar

生產環境 RocketMQ 的使用流程和推薦配置

  • Topic 創建線上禁止開啟自動創建
  • 一般是有專門的后台進行隊列的 CRUD,應用上線需要申請隊列名稱
  • 生產環境推薦配置
    • NameServer 配置多個不同機器多個節點
    • 多 Master, 每個 Master 帶有 Slave
    • 主從設置為 SYNC_MASTER 同步雙寫
    • Producer 用同步方式投遞 Broker
    • 刷盤策略為 SYNC_FLUSH(性能好點則可以為 ASYNC_FLUSH)
  • 性能分析思路
    • CPU:top
    • 網卡:sar -n DEV 2 10、netstat -t、 iperf3
    • 磁盤:iostat -xdm 1
    • JVM:jstack、jinfo、MAT

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM