上篇文章已經(jīng)介紹過RocketMQ,這里就不再寫了,下面直入主題,介紹RocketMQ安裝 因為RocketMQ是基于Java開發(fā)的,所以安裝RocketMQ之前,我們需要先安裝JDK,因為服務(wù)器一般采用Linux,所以本文只介紹基于Linux系統(tǒng)的教程
Apache RocketMQ 5.0 版本完成基本消息收發(fā),包括 NameServer、Broker、Proxy 組件。 在 5.0 版本中 Proxy 和 Broker 根據(jù)實際訴求可以分為 Local 模式和 Cluster模式,一般情況下如果沒有特殊需求,或者遵循從早期版本平滑升級的思路,可以選用Local模式。
? 在 Local 模式下,Broker 和 Proxy 是同進程部署,只是在原有 Broker 的配置基礎(chǔ)上新增 Proxy 的簡易配置就可以運行。
? 在 Cluster 模式下,Broker 和 Proxy 分別部署,即在原有的集群基礎(chǔ)上,額外再部署 Proxy 即可。
一、單機安裝 1、環(huán)境和資源準(zhǔn)備安裝配置java環(huán)境
系統(tǒng)要求:官網(wǎng)(https://rocketmq.apache.org/zh/docs/quickStart/02quickstart)上5.0版本的要求如下:
64位操作系統(tǒng),推薦 Linux/Unix/macOS
64位 JDK 1.8+
RocketMQ 的安裝包分為兩種,二進制包和源碼包。 點擊這里 下載 Apache RocketMQ 5.0.0的源碼包。你也可以從這里 下載到二進制包。二進制包是已經(jīng)編譯完成后可以直接運行的,源碼包是需要編譯后運行的
unzip rocketmq-all-5.0.0-bin-release.zip
#切換目錄到RocketMQ根目錄
cd rocketmq-all-5.0.0-bin-release
#啟動Name Server
nohup sh bin/mqnamesrv &
# 驗證namesrv是否啟動成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
#啟動Broker+Proxy
# 先啟動broker
$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &
### 驗證broker是否啟動成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a
$ tail -f ~/logs/rocketmqlogs/broker_default.log
4、安裝可視化插件dashboard倉庫: https://github.com/apache/rocketmq-dashboard
rocketmq-console:https://github.com/apache/rocketmq-externals
二、集群部署 1、多組節(jié)點(集群)單副本模式一個集群內(nèi)全部部署 Master 角色,不部署Slave 副本,例如2個Master或者3個Master,這種模式的優(yōu)缺點如下:
優(yōu)點:配置簡單,單個Master宕機或重啟維護對應(yīng)用無影響,在磁盤配置為RAID10時,即使機器宕機不可恢復(fù)情況下,由于RAID10磁盤非??煽浚⒁膊粫G(異步刷盤丟失少量消息,同步刷盤一條不丟),性能最高;
缺點:單臺機器宕機期間,這臺機器上未被消費的消息在機器恢復(fù)之前不可訂閱,消息實時性會受到影響。
啟動NameServer:NameServer需要先于Broker啟動,且如果在生產(chǎn)環(huán)境使用,為了保證高可用,建議一般規(guī)模的集群啟動3個NameServer,各節(jié)點的啟動命令相同,如下:
### 首先啟動NameServer
$ nohup sh mqnamesrv &
### 驗證Name Server 是否啟動成功
$ tail -f ~/logs/rocketmqlogs/namesrv.logThe Name Server boot success...
啟動Broker+Proxy集群
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties --enable-proxy &
### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties --enable-proxy &
2、多節(jié)點(集群)多副本模式-異步復(fù)制每個Master配置一個Slave,有多組 Master-Slave,HA采用異步復(fù)制方式,主備有短暫消息延遲(毫秒級),這種模式的優(yōu)缺點如下:
優(yōu)點:即使磁盤損壞,消息丟失的非常少,且消息實時性不會受影響,同時Master宕機后,消費者仍然可以從Slave消費,而且此過程對應(yīng)用透明,不需要人工干預(yù),性能同多Master模式幾乎一樣;
缺點:Master宕機,磁盤損壞情況下會丟失少量消息。
啟動NameServer
### 首先啟動Name Server
$ nohup sh mqnamesrv &
### 驗證Name Server 是否啟動成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
啟動Broker+Proxy集群
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties --enable-proxy &
### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties --enable-proxy &
### 在機器C,啟動第一個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties --enable-proxy &
### 在機器D,啟動第二個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties --enable-proxy &
3、多節(jié)點(集群)多副本模式-同步雙寫每個Master配置一個Slave,有多對 Master-Slave,HA采用同步雙寫方式,即只有主備都寫成功,才向應(yīng)用返回成功,這種模式的優(yōu)缺點如下:
優(yōu)點:數(shù)據(jù)與服務(wù)都無單點故障,Master宕機情況下,消息無延遲,服務(wù)可用性與數(shù)據(jù)可用性都非常高;
缺點:性能比異步復(fù)制模式略低(大約低10%左右),發(fā)送單個消息的RT會略高,且目前版本在主節(jié)點宕機后,備機不能自動切換為主機。
啟動NameServer
### 首先啟動Name Server
$ nohup sh mqnamesrv &
### 驗證Name Server 是否啟動成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
啟動 Broker+Proxy 集群
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties --enable-proxy &
### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties --enable-proxy &
### 在機器C,啟動第一個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties --enable-proxy &
### 在機器D,啟動第二個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties --enable-proxy &
三、Cluster模式部署在 Cluster 模式下,Broker 與 Proxy分別部署,我可以在 NameServer和 Broker都啟動完成之后再部署 Proxy。
在 Cluster模式下,一個 Proxy集群和 Broker集群為一一對應(yīng)的關(guān)系,可以在 Proxy的配置文件 rmq-proxy.json 中使用 rocketMQClusterName 進行配置
啟動 NameServer
### 首先啟動Name Server
$ nohup sh mqnamesrv &
### 驗證Name Server 是否啟動成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
啟動 Broker
1、單組節(jié)點單副本模式這種方式風(fēng)險較大,因為 Broker 只有一個節(jié)點,一旦Broker重啟或者宕機時,會導(dǎo)致整個服務(wù)不可用。不建議線上環(huán)境使用, 可以用于本地測試
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 &
2、多組節(jié)點(集群)單副本模式一個集群內(nèi)全部部署 Master 角色,不部署Slave 副本,例如2個Master或者3個Master,這種模式的優(yōu)缺點如下:
優(yōu)點:配置簡單,單個Master宕機或重啟維護對應(yīng)用無影響,在磁盤配置為RAID10時,即使機器宕機不可恢復(fù)情況下,由于RAID10磁盤非常可靠,消息也不會丟(異步刷盤丟失少量消息,同步刷盤一條不丟),性能最高;
缺點:單臺機器宕機期間,這臺機器上未被消費的消息在機器恢復(fù)之前不可訂閱,消息實時性會受到影響。
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &
備注
如上啟動命令是在單個NameServer情況下使用的。對于多個NameServer的集群,Broker啟動命令中-n后面的地址列表用分號隔開即可,例如 192.168.1.1:9876;192.161.2:9876。
3、多節(jié)點(集群)多副本模式-異步復(fù)制每個Master配置一個Slave,有多組 Master-Slave,HA采用異步復(fù)制方式,主備有短暫消息延遲(毫秒級),這種模式的優(yōu)缺點如下:
優(yōu)點:即使磁盤損壞,消息丟失的非常少,且消息實時性不會受影響,同時Master宕機后,消費者仍然可以從Slave消費,而且此過程對應(yīng)用透明,不需要人工干預(yù),性能同多Master模式幾乎一樣;
缺點:Master宕機,磁盤損壞情況下會丟失少量消息。
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
### 在機器C,啟動第一個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
### 在機器D,啟動第二個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &
4、多節(jié)點(集群)多副本模式-同步雙寫每個Master配置一個Slave,有多對 Master-Slave,HA采用同步雙寫方式,即只有主備都寫成功,才向應(yīng)用返回成功,這種模式的優(yōu)缺點如下:
優(yōu)點:數(shù)據(jù)與服務(wù)都無單點故障,Master宕機情況下,消息無延遲,服務(wù)可用性與數(shù)據(jù)可用性都非常高;
缺點:性能比異步復(fù)制模式略低(大約低10%左右),發(fā)送單個消息的RT會略高,且目前版本在主節(jié)點宕機后,備機不能自動切換為主機。
### 在機器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
### 在機器B,啟動第二個Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
### 在機器C,啟動第一個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
### 在機器D,啟動第二個Slave,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &
提示5、啟動 Proxy
以上 Broker 與 Slave 配對是通過指定相同的 BrokerName 參數(shù)來配對,Master 的 BrokerId 必須是 0,Slave 的 BrokerId 必須是大于 0 的數(shù)。另外一個 Master 下面可以掛載多個 Slave,同一 Master 下的多個 Slave 通過指定不同的 BrokerId 來區(qū)分。$ROCKETMQ_HOME指的RocketMQ安裝目錄,需要用戶自己設(shè)置此環(huán)境變量。
可以在多臺機器啟動多個Proxy
### 在機器A,啟動第一個Proxy,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqproxy -n 192.168.1.1:9876 &
### 在機器B,啟動第二個Proxy,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqproxy -n 192.168.1.1:9876 &
### 在機器C,啟動第三個Proxy,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqproxy -n 192.168.1.1:9876 &
若需要指定配置文件,可以使用 -pc或者 --proxyConfigPath 進行指定
### 自定義配置文件
$ nohup sh bin/mqproxy -n 192.168.1.1:9876 -pc /path/to/proxyConfig.json &
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:RocketMQ部署詳解-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://jinyejixie.com/article44/eihhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、Google、App設(shè)計、網(wǎng)站改版、定制開發(fā)、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容