運(yùn)維管理(operation)
來源 :官方文檔
1 集群搭建
1.1 單Master模式
這種方式風(fēng)險(xiǎn)較大,一旦Broker重啟或者宕機(jī)時(shí)衩匣,會(huì)導(dǎo)致整個(gè)服務(wù)不可用。不建議線上環(huán)境使用,可以用于本地測試粥航。
1)啟動(dòng) NameServer
### 首先啟動(dòng)Name Server
$ nohup sh mqnamesrv &
### 驗(yàn)證Name Server 是否啟動(dòng)成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
2)啟動(dòng) Broker
### 啟動(dòng)Broker
$ nohup sh bin/mqbroker -n localhost:9876 &
### 驗(yàn)證Name Server 是否啟動(dòng)成功琅捏,例如Broker的IP為:192.168.1.2,且名稱為broker-a
$ tail -f ~/logs/rocketmqlogs/Broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
1.2 多Master模式
一個(gè)集群無Slave递雀,全是Master柄延,例如2個(gè)Master或者3個(gè)Master,這種模式的優(yōu)缺點(diǎn)如下:
優(yōu)點(diǎn):配置簡單缀程,單個(gè)Master宕機(jī)或重啟維護(hù)對(duì)應(yīng)用無影響搜吧,在磁盤配置為RAID10時(shí),即使機(jī)器宕機(jī)不可恢復(fù)情況下杨凑,由于RAID10磁盤非陈四危可靠,消息也不會(huì)丟(異步刷盤丟失少量消息撩满,同步刷盤一條不丟)蜒程,性能最高;
缺點(diǎn):單臺(tái)機(jī)器宕機(jī)期間伺帘,這臺(tái)機(jī)器上未被消費(fèi)的消息在機(jī)器恢復(fù)之前不可訂閱昭躺,消息實(shí)時(shí)性會(huì)受到影響。
1)啟動(dòng)NameServer
NameServer需要先于Broker啟動(dòng)伪嫁,且如果在生產(chǎn)環(huán)境使用领炫,為了保證高可用,建議一般規(guī)模的集群啟動(dòng)3個(gè)NameServer张咳,各節(jié)點(diǎn)的啟動(dòng)命令相同帝洪,如下:
### 首先啟動(dòng)Name Server
$ nohup sh mqnamesrv &
### 驗(yàn)證Name Server 是否啟動(dòng)成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
2)啟動(dòng)Broker集群
### 在機(jī)器A似舵,啟動(dòng)第一個(gè)Master,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
### 在機(jī)器B碟狞,啟動(dòng)第二個(gè)Master啄枕,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &
...
如上啟動(dòng)命令是在單個(gè)NameServer情況下使用的。對(duì)于多個(gè)NameServer的集群族沃,Broker啟動(dòng)命令中-n
后面的地址列表用分號(hào)隔開即可频祝,例如 192.168.1.1:9876;192.161.2:9876
。
1.3 多Master多Slave模式-異步復(fù)制
每個(gè)Master配置一個(gè)Slave脆淹,有多對(duì)Master-Slave常空,HA采用異步復(fù)制方式,主備有短暫消息延遲(毫秒級(jí))盖溺,這種模式的優(yōu)缺點(diǎn)如下:
優(yōu)點(diǎn):即使磁盤損壞漓糙,消息丟失的非常少,且消息實(shí)時(shí)性不會(huì)受影響烘嘱,同時(shí)Master宕機(jī)后昆禽,消費(fèi)者仍然可以從Slave消費(fèi),而且此過程對(duì)應(yīng)用透明蝇庭,不需要人工干預(yù)醉鳖,性能同多Master模式幾乎一樣;
缺點(diǎn):Master宕機(jī)哮内,磁盤損壞情況下會(huì)丟失少量消息盗棵。
1)啟動(dòng)NameServer
### 首先啟動(dòng)Name Server
$ nohup sh mqnamesrv &
### 驗(yàn)證Name Server 是否啟動(dòng)成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
2)啟動(dòng)Broker集群
### 在機(jī)器A,啟動(dòng)第一個(gè)Master北发,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
### 在機(jī)器B纹因,啟動(dòng)第二個(gè)Master,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
### 在機(jī)器C琳拨,啟動(dòng)第一個(gè)Slave瞭恰,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
### 在機(jī)器D,啟動(dòng)第二個(gè)Slave从绘,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &
1.4 多Master多Slave模式-同步雙寫
每個(gè)Master配置一個(gè)Slave寄疏,有多對(duì)Master-Slave,HA采用同步雙寫方式僵井,即只有主備都寫成功,才向應(yīng)用返回成功驳棱,這種模式的優(yōu)缺點(diǎn)如下:
優(yōu)點(diǎn):數(shù)據(jù)與服務(wù)都無單點(diǎn)故障批什,Master宕機(jī)情況下,消息無延遲社搅,服務(wù)可用性與數(shù)據(jù)可用性都非常高驻债;
缺點(diǎn):性能比異步復(fù)制模式略低(大約低10%左右)乳规,發(fā)送單個(gè)消息的RT會(huì)略高,且目前版本在主節(jié)點(diǎn)宕機(jī)后合呐,備機(jī)不能自動(dòng)切換為主機(jī)暮的。
1)啟動(dòng)NameServer
### 首先啟動(dòng)Name Server
$ nohup sh mqnamesrv &
### 驗(yàn)證Name Server 是否啟動(dòng)成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
2)啟動(dòng)Broker集群
### 在機(jī)器A,啟動(dòng)第一個(gè)Master淌实,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
### 在機(jī)器B冻辩,啟動(dòng)第二個(gè)Master,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
### 在機(jī)器C拆祈,啟動(dòng)第一個(gè)Slave恨闪,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
### 在機(jī)器D,啟動(dòng)第二個(gè)Slave放坏,例如NameServer的IP為:192.168.1.1
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &
以上Broker與Slave配對(duì)是通過指定相同的BrokerName參數(shù)來配對(duì)咙咽,Master的BrokerId必須是0,Slave的BrokerId必須是大于0的數(shù)淤年。另外一個(gè)Master下面可以掛載多個(gè)Slave钧敞,同一Master下的多個(gè)Slave通過指定不同的BrokerId來區(qū)分。$ROCKETMQ_HOME指的RocketMQ安裝目錄麸粮,需要用戶自己設(shè)置此環(huán)境變量溉苛。