訊息中間間:rocketmq叢集部署
阿新 • • 發佈:2022-05-27
配置hosts
cd /etc/hosts
1. 多Master模式
一個叢集無Slave,全是Master,例如2個Master或者3個Master,這種模式的優缺點如下:
- 優點:配置簡單,單個Master宕機或重啟維護對應用無影響,在磁碟配置為RAID10時,即使機器宕機不可恢復情況下,由於RAID10磁碟非常可靠,訊息也不會丟(非同步刷盤丟失少量訊息,同步刷盤一條不丟),效能最高;
- 缺點:單臺機器宕機期間,這臺機器上未被消費的訊息在機器恢復之前不可訂閱,訊息實時性會受到影響。
1)啟動NameServer
NameServer需要先於Broker啟動,且如果在生產環境使用,為了保證高可用,建議一般規模的叢集啟動3個NameServer,各節點的啟動命令相同,如下:
$ cd /opt/rocketmq-4.9.3/bin
### 首先啟動Name Server $ nohup sh mqnamesrv & ### 驗證Name Server 是否啟動成功 $ tail -f ~/logs/rocketmqlogs/namesrv.log The Name Server boot success...
2)啟動Broker叢集
$ cd /opt/rocketmq-4.9.3/bin
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.219 $ nohup sh mqbroker -n 192.168.1.219:9876 -c ../conf/2m-noslave/broker-a.properties &### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.220 $ nohup sh mqbroker -n 192.168.1.220:9876 -c ../conf/2m-noslave/broker-b.properties &
...
如上啟動命令是在單個NameServer情況下使用的。對於多個NameServer的叢集,Broker啟動命令中-n
後面的地址列表用分號隔開即可,例如 192.168.1.219:9876;192.1.220:9876
。
2. 多Master多Slave模式-非同步複製
每個Master配置一個Slave,有多對Master-Slave,HA採用非同步複製方式,主備有短暫訊息延遲(毫秒級),這種模式的優缺點如下:
- 優點:即使磁碟損壞,訊息丟失的非常少,且訊息實時性不會受影響,同時Master宕機後,消費者仍然可以從Slave消費,而且此過程對應用透明,不需要人工干預,效能同多Master模式幾乎一樣;
- 缺點:Master宕機,磁碟損壞情況下會丟失少量訊息。
1)啟動NameServer
$ cd /opt/rocketmq-4.9.3/bin
### 首先啟動Name Server $ nohup sh mqnamesrv & ### 驗證Name Server 是否啟動成功 $ tail -f ~/logs/rocketmqlogs/namesrv.log The Name Server boot success...
2)啟動Broker叢集
$ cd /opt/rocketmq-4.9.3/bin
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.219
$ nohup sh mqbroker -n 192.168.1.219:9876 -c ../conf/2m-2s-async/broker-a.properties &
### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.220
$ nohup sh mqbroker -n 192.168.1.220:9876 -c ../conf/2m-2s-async/broker-b.properties &
### 在機器A,啟動第一個Slave,例如NameServer的IP為:192.168.1.219
$ nohup sh mqbroker -n 192.168.1.219:9876 -c ../conf/2m-2s-async/broker-a-s.properties &
### 在機器B,啟動第二個Slave,例如NameServer的IP為:192.168.1.220
$ nohup sh mqbroker -n 192.168.1.220:9876 -c ../conf/2m-2s-async/broker-b-s.properties &
3. 多Master多Slave模式-同步雙寫
每個Master配置一個Slave,有多對Master-Slave,HA採用同步雙寫方式,即只有主備都寫成功,才嚮應用返回成功,這種模式的優缺點如下:
- 優點:資料與服務都無單點故障,Master宕機情況下,訊息無延遲,服務可用性與資料可用性都非常高;
- 缺點:效能比非同步複製模式略低(大約低10%左右),傳送單個訊息的RT會略高,且目前版本在主節點宕機後,備機不能自動切換為主機。
1)啟動NameServer
$ cd /opt/rocketmq-4.9.3/bin
### 首先啟動Name Server $ nohup sh mqnamesrv & ### 驗證Name Server 是否啟動成功 $ tail -f ~/logs/rocketmqlogs/namesrv.log The Name Server boot success...
2)啟動Broker叢集
$ cd /opt/rocketmq-4.9.3/bin
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.219 $ nohup sh mqbroker -n 192.168.1.219:9876 -c ../conf/2m-2s-sync/broker-a.properties & ### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.220 $ nohup sh mqbroker -n 192.168.1.220:9876 -c ../conf/2m-2s-sync/broker-b.properties & ### 在機器A,啟動第一個Slave,例如NameServer的IP為:192.168.1.219 $ nohup sh mqbroker -n 192.168.1.219:9876 -c ../conf/2m-2s-sync/broker-a-s.properties & ### 在機器B,啟動第二個Slave,例如NameServer的IP為:192.168.1.220 $ nohup sh mqbroker -n 192.168.1.220:9876 -c ../conf/2m-2s-sync/broker-b-s.properties &
以上Broker與Slave配對是通過指定相同的BrokerName引數來配對,Master的BrokerId必須是0,Slave的BrokerId必須是大於0的數。另外一個Master下面可以掛載多個Slave,同一Master下的多個Slave通過指定不同的BrokerId來區分。