第八章:手把手教老婆實現:RocketMQ集群模式(2)-RocketMQ主從-搭建
技術活,該賞
關注+一鍵三連(,評論,)再看,養成好習慣
RocketMQ使用教程相關系列 目錄
目錄
第一節:服務器準備
第二節:安裝配置(salve)
創建rocketmq存儲目錄
修改 runbroker.sh
修改 runserver.sh
第三節:配置
配置hosts
配置完成后, 重啟網卡
rocketmq 環境變量配置
jdk安裝
修改master服務器配置
關閉namesrv服務
關閉broker服務
主從配置
主機:192.168.88.131
從機:192.168.88.133
第四節:啟動namesrv和主從的broker
先啟動master主機和slave主機的namesrv
啟動master主機的broker
再啟動slave主機的broker
第五節:集群監控平臺查看
啟動
第一節:服務器準備
安裝兩臺虛擬機,一臺master,一臺slave。
IP
hostname
mastername
192.168.88.133
rocketmq-nameserver2
rocketmq-master1-slave1
192.168.88.131
rocketmq-nameserver1
rocketmq-master1
安裝虛擬機傳送門-->
第二節:安裝配置(salve)
之前已經在一臺服務器安裝了rocketMQ,所以salve服務器(192.168.88.133)只需要安裝從節點就行了。
注:如果不知道rocketMQ怎么安裝的,傳送門-->第一章:RocketMQ安裝
先在salve服務器創建存在安裝文件的目錄
mkdir server
把安裝文件拷貝到salve服務器上,并解壓安裝
scp rocketmq-all-4.5.1-bin-release.zip 192.168.88.133:/usr/local/server/
unzip rocketmq-all-4.5.1-bin-release.zip
mkdir mq
mv rocketmq-all-4.5.1-bin-release mq/rocketmq
創建rocketmq存儲目錄
現有的目錄結構是這樣的
創建存儲目錄
mkdir logs
mkdir store
cd store
mkdir commitlog
mkdir consumequeue
mkdir index
修改日志路徑
進入conf 目錄,替換所有xml中的${user.home},保證日志路徑正確
語法:
sed -i 批量替換作用
sed -i 's#原字符串#新字符串#g' 替換的文件
sed -i 's#${user.home}#/usr/local/server/mq/rocketmq#g' *.xml
說明替換成功了
修改 runbroker.sh
調整內存大小(這里只是演示用途,實際的內存大小要以生產環境為準)
cd ..
cd bin/
vim runbroker.sh
調整為1g
修改 runserver.sh
調整內存大小(這里只是演示用途,實際的內存大小要以生產環境為準)
vim runserver.sh
第三節:配置
配置hosts
在host文件中配置地址與IP的映射關系
修改2臺機器的/etc/hosts文件,加入如下映射關系
vim /etc/hosts
192.168.88.131 rocketmq-nameserver1
192.168.88.131 rocketmq-master1
192.168.88.133 rocketmq-nameserver2
192.168.88.133 rocketmq-master1-slave1
配置完成后, 重啟網卡
systemctl restart network
rocketmq 環境變量配置
vim /etc/profile
在profile文件的末尾加入如下命令
#set rocketmq
ROCKETMQ_HOME=/usr/local/server/mq/rocketmq/
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH
輸入:wq! 保存并退出, 并使得配置立刻生效:
source /etc/profile
jdk安裝
centos安裝open-jdk8-->傳送門
修改master服務器配置
主機;192.168.88.131
關閉namesrv服務
#進入bin
sh mqshutdown namesrv
關閉broker服務
sh mqshutdown broker
通過jps驗證下
主從配置
主機:192.168.88.131
cd /usr/local/server/mq/rocketmq/conf
cd 2m-2s-async/
vim broker-a.properties
#所屬集群名字
brokerClusterName=xuzhu_cluster
#broker 名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer 地址,分號分割
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
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每個文件默認存 30W 條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/usr/local/server/mq/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog=/usr/local/server/mq/rocketmq/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/usr/local/server/mq/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/usr/local/server/mq/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/usr/local/server/mq/rocketmq/store/checkpoint
#abort 文件存儲路徑
abortFile=/usr/local/server/mq/rocketmq/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
有調整的地方:
#集群名稱,主從要一樣
brokerClusterName=xuzhu_cluster
#broker名稱,主從要一樣,根據BrokerRole來確定誰是主誰是從
brokerName=broker-a
#nameServer 地址
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#brokerID 0是主,>0是從
brokerId=0
#主從關系,異步復制
brokerRole=ASYNC_MASTER
#刷盤模式,異步刷盤
flushDiskType=ASYNC_FLUSH
從機:192.168.88.133
修改broker-a-s.properties
vim broker-a-s.properties
修改,保存
#所屬集群名字
brokerClusterName=xuzhu_cluster
#broker 名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer 地址,分號分割
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
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每個文件默認存 30W 條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/usr/local/server/mq/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog=/usr/local/server/mq/rocketmq/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/usr/local/server/mq/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/usr/local/server/mq/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/usr/local/server/mq/rocketmq/store/checkpoint
#abort 文件存儲路徑
abortFile=/usr/local/server/mq/rocketmq/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
有調整的地方:
#集群名稱,主從要一樣
brokerClusterName=xuzhu_cluster
#broker名稱,主從要一樣,根據BrokerRole來確定誰是主誰是從
brokerName=broker-a
#nameServer 地址
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#brokerID 0是主,>0是從
brokerId=1
#角色是從節點
brokerRole=SLAVE
#刷盤模式,異步刷盤
flushDiskType=ASYNC_FLUSH
第四節:啟動namesrv和主從的broker
master主機和slave主機進入bin目錄
先啟動master主機和slave主機的namesrv
nohup sh mqnamesrv > /dev/null 2>&1 &
啟動master主機的broker
nohup sh mqbroker -c /usr/local/server/mq/rocketmq/conf/2m-2s-async/broker-a.properties > /dev/null 2>&1 &
再啟動slave主機的broker
nohup sh mqbroker -c /usr/local/server/mq/rocketmq/conf/2m-2s-async/broker-a-s.properties > /dev/null 2>&1 &
第五節:集群監控平臺查看
啟動
事先要查詢下docker 有沒有存在容器rocketmq-console-ng,如果有,要先刪除
對docker不熟悉的同學,傳送門-->docker 常用操作容器命令
如果事先沒有下載rocketmq-console鏡像,傳送門-->RocketMQ集群監控平臺 rocketmq-console 搭建
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.88.131:9876;192.168.88.133:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t --name rocketmq-console-ng styletang/rocketmq-console-ng
Docker
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。