rocketmq測試1-rocketmq,2m2s叢集搭建
rocketmq測試1-2m2s叢集搭建
環境:
虛擬機器centos;jdk1.8;rocketmq3.5.8
2個虛擬機器ip地址:192.168.159.134,192.168.159.136
注意:1.同一臺機器部署多個broker,注意埠及儲存目錄要不同,且埠號之間要相距大些。2.關閉虛擬機器centos防火牆
1.2m2s叢集搭建 |
namesrv1 | 192.168.159.134:9876 |
---|---|
namesrv2 | 192.168.159.136:9876 |
broker-a | 192.168.159.134:10911 |
broker-b | 192.168.159.136:10911 |
broker-a-s | 192.168.159.136:10923 |
broker-b-s | 192.168.159.134:10923 |
1.1環境準備
1)安裝rocketmq
見:http://rocketmq.apache.org/docs/quick-start/
修改安裝目錄名為rocketmq
2)將rocketmq的日誌及儲存檔案統一儲存在一個目錄。
建立儲存目錄:
[[email protected] ~]$ mkdir rocketmqdata
修改日誌儲存目錄
[yhh@localhost ~/yhh/rocketmq/distribution/target/apache-rocketmq/conf]$ sed -i 's#${user.home}#${user.home}/rocketmqdata#g' *.xml
- 修改相關broker.properties儲存目錄及相關broker屬性配置
在
[
下修改broker屬性檔案:
注意:同一臺機器部署多個broker,注意埠及儲存目錄要不同,且埠號之間要相距大些。
broker-a.properties
#將a.properties和b.properties檔案中的內容全部清掉(用下面的內容替換掉)
#所屬叢集名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置檔案填寫的不一樣 例如:在a.properties 檔案中寫 broker-a 在b.properties 檔案中寫 broker-b
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=192.168.159.134:9876;192.168.159.136:9876
#在傳送訊息時,自動建立伺服器不存在的topic,預設建立的佇列數
defaultTopicQueueNums=4
#是否允許 Broker 自動建立Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動建立訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽埠
listenPort=10911
#刪除檔案時間點,預設凌晨 4點
deleteWhen=04
#檔案保留時間,預設 48 小時
fileReservedTime=120
#commitLog每個檔案的大小預設1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個檔案預設存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理檔案磁碟空間
diskMaxUsedSpaceRatio=88
#儲存路徑
storePathRootDir=/home/yhh/rocketmqdata/rocketmq/1/store
#commitLog 儲存路徑
storePathCommitLog=/home/yhh/rocketmqdata/rocketmq/1/store/commitlog
#消費佇列儲存路徑儲存路徑
storePathConsumeQueue=/home/yhh/rocketmqdata/rocketmq/1/store/consumequeue
#訊息索引儲存路徑
storePathIndex=/home/yhh/rocketmqdata/rocketmq/1/store/index
#checkpoint 檔案儲存路徑
storeCheckpoint=/home/yhh/rocketmqdata/rocketmq/1/store/checkpoint
#abort 檔案儲存路徑
abortFile=/home/yhh/rocketmqdata/rocketmq/1/store/abort
#限制的訊息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 非同步複製Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盤方式
#- ASYNC_FLUSH 非同步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發訊息執行緒池數量
#sendMessageThreadPoolNums=128
#拉訊息執行緒池數量
#pullMessageThreadPoolNums=128
broker-a-s.properties
#將a.properties和b.properties檔案中的內容全部清掉(用下面的內容替換掉)
#所屬叢集名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置檔案填寫的不一樣 例如:在a.properties 檔案中寫 broker-a 在b.properties 檔案中寫 broker-b
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分號分割
namesrvAddr=192.168.159.134:9876;192.168.159.136:9876
#在傳送訊息時,自動建立伺服器不存在的topic,預設建立的佇列數
defaultTopicQueueNums=4
#是否允許 Broker 自動建立Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動建立訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽埠
listenPort=10923
#刪除檔案時間點,預設凌晨 4點
deleteWhen=04
#檔案保留時間,預設 48 小時
fileReservedTime=120
#commitLog每個檔案的大小預設1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個檔案預設存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理檔案磁碟空間
diskMaxUsedSpaceRatio=88
#儲存路徑
storePathRootDir=/home/yhh/rocketmqdata/rocketmq/2/store
#commitLog 儲存路徑
storePathCommitLog=/home/yhh/rocketmqdata/rocketmq/2/store/commitlog
#消費佇列儲存路徑儲存路徑
storePathConsumeQueue=/home/yhh/rocketmqdata/rocketmq/2/store/consumequeue
#訊息索引儲存路徑
storePathIndex=/home/yhh/rocketmqdata/rocketmq/2/store/index
#checkpoint 檔案儲存路徑
storeCheckpoint=/home/yhh/rocketmqdata/rocketmq/2/store/checkpoint
#abort 檔案儲存路徑
abortFile=/home/yhh/rocketmqdata/rocketmq/2/store/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
broker-b.properties及broker-b-s.properties與上述類似,修改broker名即可。
1.2部署(2個虛擬機器交叉部署主備)
1)在192.168.159.134機器啟動namesrv
[yhh@localhost ~/yhh/rocketmq/distribution/target/apache-rocketmq]$nohup sh bin/mqnamesrv &
2)在192.168.159.134機器啟動broker-a,broker-b-s
[yhh@localhost ~/yhh/rocketmq/distribution/target/apache-rocketmq]$ nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties &
[yhh@localhost ~/yhh/rocketmq/distribution/target/apache-rocketmq]$ nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties &
3)在192.168.159.136機器啟動namesrv
[yhh@localhost ~/yhh/rocketmq/distribution/target/apache-rocketmq]$nohup sh bin/mqnamesrv &
2)在192.168.159.134機器啟動broker-b,broker-a-s
[yhh@localhost ~/yhh/rocketmq/distribution/target/apache-rocketmq]$ nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties &
[yhh@localhost ~/yhh/rocketmq/distribution/target/apache-rocketmq]$ nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties &
2.測試 |
1)jps
2)sh bin/mqadmin clusterList –n 192.168.159.134:9876
3)rocketmq-consolle控制檯檢視
rocketmq-consolle.war下載:
1.將rocketmq-consolle.war放在tomact下的webapp下:
2.修改config.properties
3.啟動
rocketmq-consolle:
http://localhost:8080/rocketmq-console/cluster/list.do
下篇測試一下rocketmq的各種特性,
叢集消費:廣播消費:均攤消費:順序消費:超時訊息:重試訊息:事物訊息:主機掛,生產組不能傳送,消費組可以繼續從備機消費:執行緒數和佇列數對效能的影響。