RocketMQ部署詳解-創(chuàng)新互聯(lián)

上篇文章已經(jīng)介紹過RocketMQ,這里就不再寫了,下面直入主題,介紹RocketMQ安裝 因?yàn)镽ocketMQ是基于Java開發(fā)的,所以安裝RocketMQ之前,我們需要先安裝JDK,因?yàn)榉?wù)器一般采用Linux,所以本文只介紹基于Linux系統(tǒng)的教程

創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)按需規(guī)劃網(wǎng)站,是成都網(wǎng)站營銷推廣公司,為成都衛(wèi)生間隔斷提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站維護(hù)熱線:028-86922220

Apache RocketMQ 5.0 版本完成基本消息收發(fā),包括 NameServer、Broker、Proxy 組件。 在 5.0 版本中 Proxy 和 Broker 根據(jù)實(shí)際訴求可以分為 Local 模式和 Cluster模式,一般情況下如果沒有特殊需求,或者遵循從早期版本平滑升級的思路,可以選用Local模式。

? 在 Local 模式下,Broker 和 Proxy 是同進(jìn)程部署,只是在原有 Broker 的配置基礎(chǔ)上新增 Proxy 的簡易配置就可以運(yùn)行。

? 在 Cluster 模式下,Broker 和 Proxy 分別部署,即在原有的集群基礎(chǔ)上,額外再部署 Proxy 即可。

一、單機(jī)安裝 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+

2、安裝包下載
  • RocketMQ 的安裝包分為兩種,二進(jìn)制包和源碼包。 點(diǎn)擊這里 下載 Apache RocketMQ 5.0.0的源碼包。你也可以從這里 下載到二進(jìn)制包。二進(jìn)制包是已經(jīng)編譯完成后可以直接運(yùn)行的,源碼包是需要編譯后運(yùn)行的

3、啟動(dòng)服務(wù)
unzip rocketmq-all-5.0.0-bin-release.zip

#切換目錄到RocketMQ根目錄
cd rocketmq-all-5.0.0-bin-release

#啟動(dòng)Name Server
nohup sh bin/mqnamesrv &
# 驗(yàn)證namesrv是否啟動(dòng)成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log

#啟動(dòng)Broker+Proxy
# 先啟動(dòng)broker
$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &

### 驗(yàn)證broker是否啟動(dòng)成功, 比如, 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é)點(diǎn)(集群)單副本模式

一個(gè)集群內(nèi)全部部署 Master 角色,不部署Slave 副本,例如2個(gè)Master或者3個(gè)Master,這種模式的優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):配置簡單,單個(gè)Master宕機(jī)或重啟維護(hù)對應(yīng)用無影響,在磁盤配置為RAID10時(shí),即使機(jī)器宕機(jī)不可恢復(fù)情況下,由于RAID10磁盤非常可靠,消息也不會(huì)丟(異步刷盤丟失少量消息,同步刷盤一條不丟),性能最高;

缺點(diǎn):單臺機(jī)器宕機(jī)期間,這臺機(jī)器上未被消費(fèi)的消息在機(jī)器恢復(fù)之前不可訂閱,消息實(shí)時(shí)性會(huì)受到影響。

啟動(dòng)NameServer:NameServer需要先于Broker啟動(dòng),且如果在生產(chǎn)環(huán)境使用,為了保證高可用,建議一般規(guī)模的集群啟動(dòng)3個(gè)NameServer,各節(jié)點(diǎn)的啟動(dòng)命令相同,如下:

### 首先啟動(dòng)NameServer
$ nohup sh mqnamesrv & 
### 驗(yàn)證Name Server 是否啟動(dòng)成功
$ tail -f ~/logs/rocketmqlogs/namesrv.logThe Name Server boot success...

啟動(dòng)Broker+Proxy集群

### 在機(jī)器A,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器B,啟動(dòng)第二個(gè)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é)點(diǎn)(集群)多副本模式-異步復(fù)制

每個(gè)Master配置一個(gè)Slave,有多組 Master-Slave,HA采用異步復(fù)制方式,主備有短暫消息延遲(毫秒級),這種模式的優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):即使磁盤損壞,消息丟失的非常少,且消息實(shí)時(shí)性不會(huì)受影響,同時(shí)Master宕機(jī)后,消費(fèi)者仍然可以從Slave消費(fèi),而且此過程對應(yīng)用透明,不需要人工干預(yù),性能同多Master模式幾乎一樣;

缺點(diǎn):Master宕機(jī),磁盤損壞情況下會(huì)丟失少量消息。

啟動(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...

啟動(dòng)Broker+Proxy集群

### 在機(jī)器A,啟動(dòng)第一個(gè)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 & 
### 在機(jī)器B,啟動(dòng)第二個(gè)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 & 
### 在機(jī)器C,啟動(dòng)第一個(gè)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 & 
### 在機(jī)器D,啟動(dòng)第二個(gè)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é)點(diǎn)(集群)多副本模式-同步雙寫

每個(gè)Master配置一個(gè)Slave,有多對 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ī)。

啟動(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...

啟動(dòng) Broker+Proxy 集群

### 在機(jī)器A,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器B,啟動(dòng)第二個(gè)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 &
 
### 在機(jī)器C,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器D,啟動(dòng)第二個(gè)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都啟動(dòng)完成之后再部署 Proxy。

在 Cluster模式下,一個(gè) Proxy集群和 Broker集群為一一對應(yīng)的關(guān)系,可以在 Proxy的配置文件 rmq-proxy.json 中使用 rocketMQClusterName 進(jìn)行配置

啟動(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...

啟動(dòng) Broker

1、單組節(jié)點(diǎn)單副本模式

這種方式風(fēng)險(xiǎn)較大,因?yàn)?Broker 只有一個(gè)節(jié)點(diǎn),一旦Broker重啟或者宕機(jī)時(shí),會(huì)導(dǎo)致整個(gè)服務(wù)不可用。不建議線上環(huán)境使用, 可以用于本地測試

### 在機(jī)器A,啟動(dòng)第一個(gè)Master,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqbroker -n 192.168.1.1:9876 &
2、多組節(jié)點(diǎn)(集群)單副本模式

一個(gè)集群內(nèi)全部部署 Master 角色,不部署Slave 副本,例如2個(gè)Master或者3個(gè)Master,這種模式的優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):配置簡單,單個(gè)Master宕機(jī)或重啟維護(hù)對應(yīng)用無影響,在磁盤配置為RAID10時(shí),即使機(jī)器宕機(jī)不可恢復(fù)情況下,由于RAID10磁盤非??煽浚⒁膊粫?huì)丟(異步刷盤丟失少量消息,同步刷盤一條不丟),性能最高;

缺點(diǎn):單臺機(jī)器宕機(jī)期間,這臺機(jī)器上未被消費(fèi)的消息在機(jī)器恢復(fù)之前不可訂閱,消息實(shí)時(shí)性會(huì)受到影響。

### 在機(jī)器A,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器B,啟動(dòng)第二個(gè)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 &

備注

如上啟動(dòng)命令是在單個(gè)NameServer情況下使用的。對于多個(gè)NameServer的集群,Broker啟動(dòng)命令中-n后面的地址列表用分號隔開即可,例如 192.168.1.1:9876;192.161.2:9876。

3、多節(jié)點(diǎn)(集群)多副本模式-異步復(fù)制

每個(gè)Master配置一個(gè)Slave,有多組 Master-Slave,HA采用異步復(fù)制方式,主備有短暫消息延遲(毫秒級),這種模式的優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):即使磁盤損壞,消息丟失的非常少,且消息實(shí)時(shí)性不會(huì)受影響,同時(shí)Master宕機(jī)后,消費(fèi)者仍然可以從Slave消費(fèi),而且此過程對應(yīng)用透明,不需要人工干預(yù),性能同多Master模式幾乎一樣;

缺點(diǎn):Master宕機(jī),磁盤損壞情況下會(huì)丟失少量消息。

### 在機(jī)器A,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器B,啟動(dòng)第二個(gè)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 &
 
### 在機(jī)器C,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器D,啟動(dòng)第二個(gè)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é)點(diǎn)(集群)多副本模式-同步雙寫

每個(gè)Master配置一個(gè)Slave,有多對 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ī)。

### 在機(jī)器A,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器B,啟動(dòng)第二個(gè)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 &
 
### 在機(jī)器C,啟動(dòng)第一個(gè)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 &
 
### 在機(jī)器D,啟動(dòng)第二個(gè)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 &
提示
以上 Broker 與 Slave 配對是通過指定相同的 BrokerName 參數(shù)來配對,Master 的 BrokerId 必須是 0,Slave 的 BrokerId 必須是大于 0 的數(shù)。另外一個(gè) Master 下面可以掛載多個(gè) Slave,同一 Master 下的多個(gè) Slave 通過指定不同的 BrokerId 來區(qū)分。$ROCKETMQ_HOME指的RocketMQ安裝目錄,需要用戶自己設(shè)置此環(huán)境變量。
5、啟動(dòng) Proxy

可以在多臺機(jī)器啟動(dòng)多個(gè)Proxy

### 在機(jī)器A,啟動(dòng)第一個(gè)Proxy,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqproxy -n 192.168.1.1:9876 &

### 在機(jī)器B,啟動(dòng)第二個(gè)Proxy,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqproxy -n 192.168.1.1:9876 &

### 在機(jī)器C,啟動(dòng)第三個(gè)Proxy,例如NameServer的IP為:192.168.1.1
$ nohup sh bin/mqproxy -n 192.168.1.1:9876 &

若需要指定配置文件,可以使用 -pc或者 --proxyConfigPath 進(jìn)行指定

### 自定義配置文件
$ 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海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前文章:RocketMQ部署詳解-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://muchs.cn/article44/eihhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)Google、App設(shè)計(jì)、網(wǎng)站改版、定制開發(fā)、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司