日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RocketMQ-手把手教你搭建集群

發布時間:2025/3/19 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RocketMQ-手把手教你搭建集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、集群架構

二、準備rocketmqOS1主機

三、修改rocketmqOS1配置文件

配置文件位置

修改broker-a.properties

修改broker-b-s.properties

其它配置

四、準備rocketmqOS2主機

五、修改rocketmqOS2配置文件

修改broker-b.properties

修改broker-a-s.properties

六、啟動服務器

啟動NameServer集群

啟動兩個Master

啟動兩個Slave

七、mqadmin命令


一、集群架構

????????這里要搭建一個雙主雙從異步復制的Broker集群。為了方便,這里使用了兩臺主機來完成集群的搭建。 ????????這兩臺主機的功能與broker角色分配如下表。

二、準備rocketmqOS1主機

準備rocketmqOS主機,并修改配置。指定主機名為rocketmqOS1。

三、修改rocketmqOS1配置文件

配置文件位置

要修改的配置文件在rocketMQ解壓目錄的conf/2m-2s-async目錄中。

修改broker-a.properties

將該配置文件內容修改為如下: # 指定整個broker集群的名稱,或者說是RocketMQ集群的名稱 brokerClusterName=DefaultCluster # 指定master-slave集群的名稱。一個RocketMQ集群可以包含多個master-slave集群 brokerName=broker-a # master的brokerId為0 brokerId=0 # 指定刪除消息存儲過期文件的時間為凌晨4點 deleteWhen=04 # 指定未發生更新的消息存儲文件的保留時長為48小時,48小時后過期,將會被刪除 fileReservedTime=48 # 指定當前broker為異步復制master brokerRole=ASYNC_MASTER # 指定刷盤策略為異步刷盤 flushDiskType=ASYNC_FLUSH # 指定Name Server的地址 namesrvAddr=192.168.59.164:9876;192.168.59.165:9876

修改broker-b-s.properties

將該配置文件內容修改為如下: brokerClusterName=DefaultCluster # 指定這是另外一個master-slave集群 brokerName=broker-b # slave的brokerId為非0 brokerId=1 deleteWhen=04 fileReservedTime=48 # 指定當前broker為slave brokerRole=SLAVE flushDiskType=ASYNC_FLUSH namesrvAddr=192.168.59.164:9876;192.168.59.165:9876 # 指定Broker對外提供服務的端口,即Broker與producer與consumer通信的端口。默認 10911。由于當前主機同時充當著master1與slave2,而前面的master1使用的是默認端口。這 里需要將這兩個端口加以區分,以區分出master1與slave2 listenPort=11911 # 指定消息存儲相關的路徑。默認路徑為~/store目錄。由于當前主機同時充當著master1與 slave2,master1使用的是默認路徑,這里就需要再指定一個不同路徑 storePathRootDir=~/store-s storePathCommitLog=~/store-s/commitlog storePathConsumeQueue=~/store-s/consumequeue storePathIndex=~/store-s/index storeCheckpoint=~/store-s/checkpoint abortFile=~/store-s/abort

其它配置

除了以上配置外,這些配置文件中還可以設置其它屬性。

?

#指定整個broker集群的名稱,或者說是RocketMQ集群的名稱 brokerClusterName=rocket-MS #指定master-slave集群的名稱。一個RocketMQ集群可以包含多個master-slave集群 brokerName=broker-a #0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,分號分割 namesrvAddr=nameserver1:9876;nameserver2:9876 #默認為新建Topic所創建的隊列數 defaultTopicQueueNums=4 #是否允許 Broker 自動創建Topic,建議生產環境中關閉 autoCreateTopicEnable=true #是否允許 Broker 自動創建訂閱組,建議生產環境中關閉 autoCreateSubscriptionGroup=true #Broker對外提供服務的端口,即Broker與producer與consumer通信的端口 listenPort=10911 #HA高可用監聽端口,即Master與Slave間通信的端口,默認值為listenPort+1 haListenPort=10912 #指定刪除消息存儲過期文件的時間為凌晨4點 deleteWhen=04 #指定未發生更新的消息存儲文件的保留時長為48小時,48小時后過期,將會被刪除 fileReservedTime=48 #指定commitLog目錄中每個文件的大小,默認1G mapedFileSizeCommitLog=1073741824 #指定ConsumeQueue的每個Topic的每個Queue文件中可以存放的消息數量,默認30w條 mapedFileSizeConsumeQueue=300000 #在清除過期文件時,如果該文件被其他線程所占用(引用數大于0,比如讀取消息),此時會阻止 此次刪除任務,同時在第一次試圖刪除該文件時記錄當前時間戳。該屬性則表示從第一次拒絕刪除 后開始計時,該文件最多可以保留的時長。在此時間內若引用數仍不為0,則刪除仍會被拒絕。不過 時間到后,文件將被強制刪除 destroyMapedFileIntervalForcibly=120000 #指定commitlog、consumequeue所在磁盤分區的最大使用率,超過該值,則需立即清除過期文件 diskMaxUsedSpaceRatio=88 #指定store目錄的路徑,默認在當前用戶主目錄中 storePathRootDir=/usr/local/rocketmq-all-4.5.0/store #commitLog目錄路徑 storePathCommitLog=/usr/local/rocketmq-all-4.5.0/store/commitlog #consumeueue目錄路徑 storePathConsumeQueue=/usr/local/rocketmq-all-4.5.0/store/consumequeue #index目錄路徑 storePathIndex=/usr/local/rocketmq-all-4.5.0/store/index #checkpoint文件路徑 storeCheckpoint=/usr/local/rocketmq-all-4.5.0/store/checkpoint #abort文件路徑 abortFile=/usr/local/rocketmq-all-4.5.0/store/abort #指定消息的最大大小 maxMessageSize=65536 #Broker的角色 # - ASYNC_MASTER 異步復制Master # - SYNC_MASTER 同步雙寫Master # - SLAVE brokerRole=SYNC_MASTER #刷盤策略 # - ASYNC_FLUSH 異步刷盤 # - SYNC_FLUSH 同步刷盤 flushDiskType=SYNC_FLUSH #發消息線程池數量 sendMessageThreadPoolNums=128 #拉消息線程池數量 pullMessageThreadPoolNums=128 #強制指定本機IP,需要根據每臺機器進行修改。官方介紹可為空,系統默認自動識別,但多網卡 時IP地址可能讀取錯誤 brokerIP1=192.168.3.105

四、準備rocketmqOS2主機

準備rocketmqOS1主機,并修改配置。指定主機名為rocketmqOS2。

五、修改rocketmqOS2配置文件

????????對于rocketmqOS2主機,同樣需要修改rocketMQ解壓目錄的conf目錄的子目錄2m-2s-async中的兩個配置文件。

修改broker-b.properties

將該配置文件內容修改為如下: brokerClusterName=DefaultCluster brokerName=broker-b brokerId=0 deleteWhen=04 fileReservedTime=48 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH namesrvAddr=192.168.59.164:9876;192.168.59.165:9876

修改broker-a-s.properties

將該配置文件內容修改為如下: brokerClusterName=DefaultCluster brokerName=broker-a brokerId=1 deleteWhen=04 fileReservedTime=48 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH namesrvAddr=192.168.59.164:9876;192.168.59.165:9876 listenPort=11911 storePathRootDir=~/store-s storePathCommitLog=~/store-s/commitlog storePathConsumeQueue=~/store-s/consumequeue storePathIndex=~/store-s/index storeCheckpoint=~/store-s/checkpoint abortFile=~/store-s/abort

六、啟動服務器

啟動NameServer集群

分別啟動rocketmqOS1rocketmqOS2兩個主機中的NameServer。啟動命令完全相同。 nohup sh bin/mqnamesrv & tail -f ~/logs/rocketmqlogs/namesrv.log

啟動兩個Master

????????分別啟動rocketmqOS1rocketmqOS2兩個主機中的broker master。注意,它們指定所要加載的配置文件是不同的。 nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties & tail -f ~/logs/rocketmqlogs/broker.log nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties & tail -f ~/logs/rocketmqlogs/broker.log

啟動兩個Slave

????????分別啟動rocketmqOS1rocketmqOS2兩個主機中的broker slave。注意,它們指定所要加載的配置文件是不同的。 nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties & tail -f ~/logs/rocketmqlogs/broker.log nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties & tail -f ~/logs/rocketmqlogs/broker.log

七、mqadmin命令

運維專用命令,后續再出

總結

以上是生活随笔為你收集整理的RocketMQ-手把手教你搭建集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。