附加:如果有多個master,那么每個master配置的名字應該一樣,要不然識別不了對方,不知道是一個集群內部的
所屬集群名字:brokerClusterName=rocketmq-cluster
broker名字,注意此處不同的配置文件填寫的不一樣(按配置文件文件名來匹配)
brokerName=broker-a
0 表示Master, > 0 表示slave
brokerId=0
此處許手動更改
(此處nameserver跟host配置相匹配,9876為默認rk服務默認端口)nameServer 地址,分號分割
附加:broker啟動時會跟nameserver建一個長連接,broker通過長連接才會向nameserver發新建的topic主題,然后java的客戶端才能跟nameserver端發起長連接,向nameserver索取topic,找到topic主題之后,判斷其所屬的broker,建立長連接進行通訊,這是一個至關重要的路由的概念,重點,也是區別於其它版本的一個重要特性
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
附加:消息實際存儲位置,和ConsumeQueue是mq的核心存儲概念,之前搭建2m環境的時候創建在store下面,用於數據存儲,consumequeue是一個邏輯的概念,消息過來之后,consumequeue並不是把消息所有保存起來,而是記錄一個數據的位置,記錄好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
存儲路徑
storePathRootDir=/usr/local/rocketmq/store
commitLog存儲路徑
storePathCommitLog=/usr/local/rocketmq/store/commitlog
消費隊列存儲路徑
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 異步復制Master
- SYNC_MASTER 同步雙寫Master
- SLAVE
brokerRote=ASYNC_MASTER
刷盤方式
- ASYNC_FLUSH 異步刷盤
- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
checkTransactionMessageEnable=false
發消息線程池數量
sendMessageTreadPoolNums=128
拉消息線程池數量
pullMessageTreadPoolNums=128