1. 程式人生 > 其它 >rocketMq叢集master模式搭建

rocketMq叢集master模式搭建

首先說明,本文是講述使用vmware虛擬機器搭建3臺伺服器,相當於3臺linux伺服器,並且vmware模擬的也是linux系統。其中在vmware設定了靜態ip,為了方便操作,能夠使用xshell連線,具體如何使用xshell連線vmware的,請移步 這篇文章vmware虛擬機器設定靜態ip並且通過xshell連線教程(本人已經實現)

好了,下面進入下文:

1:準備rocketMq安裝包 此處已整理好,請直接通過我的百度網盤進行下載 :

連結:https://pan.baidu.com/s/1MeJB3uZyiDo-jwUBPjR9JA
提取碼:8dx9

2:本文3臺伺服器ip分別為:192.168.242.10192.168.242.11192.168.242.12 下面的操作步驟需要分別在三臺伺服器操作

3:分別在10,11,12三臺伺服器的資料夾: /usr/local 新建資料夾 rocketmq。所以新建好資料夾後的完整是:/usr/local/rokcetmq

4:分別在三臺伺服器上傳下載好的rocketMq。如下圖:(注意:此處我是省了解壓rocket.zip 可通過 unzip rocket.zip命令進行解壓)

5:修改環境變數(記得三臺伺服器):vi /etc/profile

內容:export ROCKETMQ_HOME=/usr/local/rocketmq

重新整理環境變數,起效:source /etc/profile

6:修改rocketmq的配置檔案:/usr/local/rocketmq/conf/2m-noslave/broker-a.properties和/usr/local/rocketmq/conf/2m-noslave/broker-b.properties

增加內容如下:主要修改的配置資訊是:namesrvAddr,brokerIP1,brokerId

broker-a.properties:

#此處變數本來就有,只需要自定義後面的名字就好,此處我是為了區分ip,所以定義:Rocket-10
brokerClusterName=RockMq-10 brokerName=broker-a-12 # 0 表示 Master,>0 表示 Slave 此處如果在192.168.242.10伺服器的rocketmq作為master,那麼此值取0,其餘伺服器取1(大於0的整數) brokerId=0 deleteWhen=04 fileReservedTime
=48 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH #在傳送訊息時,自動建立伺服器不存在的topic,預設建立的佇列數 defaultTopicQueueNums=4 #是否允許Broker自動建立Topic,建議線下開啟,線上關閉 autoCreateTopicEnable=true #是否允許Broker自動建立訂閱組,建議線下開啟,線上關閉 autoCreateSubscriptionGroup=true # 檔案保留時間,預設 72 小時。根據業務情況調整 fileReservedTime=168 # nameServer地址,分號分割,這裡寫自己需要做叢集的三臺伺服器的地址 namesrvAddr=192.168.242.10:9876;192.168.242.11:9876;192.168.242.12:9876 # Details:Should be configured if having multiple addresses; Default value:InetAddress for network interface # 本機ip地址,預設系統自動識別,但是某些多網絡卡機器會存在識別錯誤的情況,這種情況 #下可以人工配置。 brokerIP1=192.168.242.10

broker-b.properties:

brokerClusterName=RockMq-10
brokerName=broker-b-10
# 0 表示 Master,>0 表示 Slave
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH


#在傳送訊息時,自動建立伺服器不存在的topic,預設建立的佇列數
defaultTopicQueueNums=4

#是否允許Broker自動建立Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true

#是否允許Broker自動建立訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true

# 檔案保留時間,預設 72 小時。根據業務情況調整
fileReservedTime=168

# nameServer地址,分號分割,這裡寫自己需要做叢集的兩臺伺服器的地址
namesrvAddr=192.168.242.10:9876;192.168.242.11:9876;192.168.242.12:9876

# Details:Should be configured if having multiple addresses; Default value:InetAddress for network interface
# 本機ip地址,預設系統自動識別,但是某些多網絡卡機器會存在識別錯誤的情況,這種情況
#下可以人工配置。
brokerIP1=192.168.242.10

特別注意:brokerIP1這個指定ip的,一定是當前linux的ip

7:在10,11,12伺服器修改rocketmq的啟動指令碼的jvm引數(對了,記得在linux伺服器部署jdk1.7以上的版本,博主使用的是jdk1.8。jdk1.8的部署教程請看:CentOS7安裝JDK1.8圖文教程

vim /usr/local/rocketmq/bin/runbroker.sh

這是未修改前的:不修改會啟動不了,會報jvm記憶體沒這麼大

所以修改後如下:(大家自行決定這個值)

8:在10,11,12三臺伺服器啟動叢集:nohup sh mqbroker -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

9:看看是否啟動成功:輸入jps命令,能看到namesrv和broker證明啟動成功(此處我沒有啟動叢集,因為是沒有連線同一網路,所以vmware裡面的linxu系統連線不上)

10:關閉rocketmq

cd /usr/local/rocketmq/bin

關閉namesrv服務:sh mqshutdown namesrv
關閉broker服務:sh mqshutdown broker

>>>>>如果發現無許可權操作檔案,請執行命令:

chmod +777 ./mqnamesrv
chmod +777 ./mqbroker

11-----拓展(使用rocketmq-dashboard,頁面檢視rocket叢集)