Apache RocketMQ 集群搭建(兩主兩從)

1.png

Apache RocketMQ 集群搭建(兩主兩從)

Apache RocketMQ 系列:

Apache RocketMQ之JMS基本概念及使用:http://www.reibang.com/p/d2e3fd77c4f4
Apache RocketMQ 基礎(chǔ)概念及架構(gòu)解析:http://www.reibang.com/p/95ab928960b3
Apache RocketMQ 的基礎(chǔ)特性介紹:http://www.reibang.com/p/570680b32590
Apache RocketMQ 集群搭建(兩主兩從):http://www.reibang.com/p/b090138cf52c
Apache RocketMQ 刷盤策略與復(fù)制策略: http://www.reibang.com/p/d66b381428bb

優(yōu)秀博客:
http://www.reibang.com/p/b30142c17ad0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation


RocketMQ 架構(gòu)圖
1.png

消息中間件和RPC最大區(qū)別:Broker Cluster存儲

NameServer: 提供輕量級的服務(wù)發(fā)現(xiàn)和路由奄容。 每個 NameServer 記錄完整的路由信息,提供等效的讀寫服務(wù),并支持快速存儲擴(kuò)展伤为。

Broker: 通過提供輕量級的 Topic 和 Queue 機(jī)制來處理消息存儲,同時支持推(push)和拉(pull)模式以及主從結(jié)構(gòu)的容錯機(jī)制。

Producer:生產(chǎn)者筷黔,產(chǎn)生消息的實(shí)例笼裳,擁有相同 Producer Group 的 Producer 組成一個集群。

Consumer:消費(fèi)者眠寿,接收消息進(jìn)行消費(fèi)的實(shí)例,擁有相同 Consumer Group 的
Consumer 組成一個集群焦蘑。

從 Broker 開始盯拱,Broker Master1 和 Broker Slave1 是主從結(jié)構(gòu),它們之間會進(jìn)行數(shù)據(jù)同步,即 Date Sync狡逢。同時每個 Broker 與
NameServer 集群中的所有節(jié)點(diǎn)建立長連接宁舰,定時注冊 Topic 信息到所有NameServer 中。

Producer 與 NameServer 集群中的其中一個節(jié)點(diǎn)(隨機(jī)選擇)建立長連接奢浑,定期從 NameServer 獲取 Topic 路由信息蛮艰,并向提供 Topic 服務(wù)的 Broker Master 建立長連接,且定時向 Broker 發(fā)送心跳雀彼。

Producer 只能將消息發(fā)送到 Broker master壤蚜,但是 Consumer 則不一樣,它同時和提供 Topic 服務(wù)的 Master 和 Slave
建立長連接徊哑,既可以從 Broker Master 訂閱消息袜刷,也可以從 Broker Slave 訂閱消息。


RocketMQ 集群部署模式

單 master 模式:

優(yōu)點(diǎn):除了配置簡單沒什么優(yōu)點(diǎn)莺丑,適合個人學(xué)習(xí)使用著蟹。

缺點(diǎn):不可靠,該機(jī)器重啟或宕機(jī)梢莽,將導(dǎo)致整個服務(wù)不可用萧豆。

多 master 模式:

多個 master 節(jié)點(diǎn)組成集群,單個 master 節(jié)點(diǎn)宕機(jī)或者重啟對應(yīng)用沒有影響昏名。

優(yōu)點(diǎn):所有模式中性能最高

缺點(diǎn):單個 master 節(jié)點(diǎn)宕機(jī)期間涮雷,未被消費(fèi)的消息在節(jié)點(diǎn)恢復(fù)之前不可用,消息的實(shí)時性就受到影響葡粒。

注意:使用同步刷盤可以保證消息不丟失份殿,同時 Topic 相對應(yīng)的 queue 應(yīng)該分布在集群中各個節(jié)點(diǎn),而不是只在某各節(jié)點(diǎn)上嗽交,否則卿嘲,該節(jié)點(diǎn)宕機(jī)會對訂閱該 topic 的應(yīng)用造成影響。

多 master 多 slave 異步復(fù)制模式:

在多 master 模式的基礎(chǔ)上夫壁,每個 master 節(jié)點(diǎn)都有至少一個對應(yīng)的 slave拾枣。master
節(jié)點(diǎn)可讀可寫,但是 slave 只能讀不能寫盒让,類似于 mysql 的主備模式梅肤。

優(yōu)點(diǎn): 在 master 宕機(jī)時,消費(fèi)者可以從 slave讀取消息邑茄,消息的實(shí)時性不會受影響姨蝴,性能幾乎和多 master 一樣。

缺點(diǎn):使用異步復(fù)制的同步方式有可能會有消息丟失的問題肺缕。

多 master 多 slave 同步雙寫模式:

同多 master 多 slave 異步復(fù)制模式類似左医,區(qū)別在于 master 和 slave 之間的數(shù)據(jù)同步方式授帕。

優(yōu)點(diǎn):同步雙寫的同步模式能保證數(shù)據(jù)不丟失。

缺點(diǎn):發(fā)送單個消息 RT 會略長浮梢,性能相比異步復(fù)制低10%左右跛十。

刷盤策略:同步刷盤和異步刷盤(指的是節(jié)點(diǎn)自身數(shù)據(jù)是同步還是異步存儲)

同步方式:同步雙寫和異步復(fù)制(指的一組 master 和 slave 之間數(shù)據(jù)的同步)

注意:要保證數(shù)據(jù)可靠,需采用同步刷盤和同步雙寫的方式秕硝,但性能會較其他方式低芥映。


開始集群搭建:2M-2S-SYNC(兩主兩從同步寫)

軟件依賴:
軟件及版本 下載地址
rocketmq-4.2 https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip
jdk1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
環(huán)境介紹:
IP 部署服務(wù) 角色
192.168.5.100 NameServer --
192.168.5.101 NameServer --
192.168.5.100 broker-a master
192.168.5.100 broker-b-s slave
192.168.5.101 broker-b master
192.168.5.101 broker-a-s slave
環(huán)境變量配置:
#設(shè)置jdk環(huán)境變量
export JAVA_HOME=/usr/local/java/jdk1.8.0_191  #jdk安裝目錄

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin

export PATH=$PATH:${JAVA_PATH}

#設(shè)置 rocketmq 環(huán)境變量
export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-4.2

export PATH=$PATH::$ROCKETMQ_HOME/bin
防火墻設(shè)置:

如果是開發(fā)環(huán)境 # service iptables stop 直接關(guān)閉防火墻
若是生產(chǎn)環(huán)境就需要配置防火墻,增加端口規(guī)則远豺,默認(rèn)nameserver端口是9876奈偏,筆者直接就關(guān)閉防火墻服務(wù)。

注:另一臺機(jī)器也是如此操作憋飞!
解壓完成后創(chuàng)建目錄:
mkdir /usr/local/rocketmq/rocketmq-4.2/data/store 存儲路徑

mkdir /usr/local/rocketmq/rocketmq-4.2/data/store/commitlog  commitLog 存儲路徑

mkdir /usr/local/rocketmq/rocketmq-4.2/data/store/consumequeue 消費(fèi)隊(duì)列存儲路徑存儲路徑

mkdir /usr/local/rocketmq/rocketmq-4.2/data/store/index 消息索引存儲路徑

[root@node-100 store]# pwd
/usr/local/rocketmq/rocketmq-4.2/data/store
[root@node-100 store]# ls
checkpoint  commitlog  config  consumequeue  index  lock  slave
[root@node-100 store]# 
修改配置文件:
[root@node-100 2m-2s-sync]# pwd
/usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync
[root@node-100 2m-2s-sync]# ls
broker-a.properties  broker-a-s.properties  broker-b.properties  broker-b-s.properties  nohup.out
[root@node-100 2m-2s-sync]# vim broker-a.properties
192.168.5.100機(jī)器配置如下:
broker-a.properties:
#所屬集群名稱霎苗,如果多個master,那么每個master配置的名稱應(yīng)該一致榛做,要不然識別不了
brokerClusterName=rocketmq-cluster
#broker名稱
brokerName=broker-a
#0 表示master,>0 表示slave
brokerId=0
#nameServer地址内狸,分號隔開
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
#在發(fā)送消息時检眯,自動創(chuàng)建服務(wù)器不存在的topic,默認(rèn)創(chuàng)建的隊(duì)列數(shù)
defaultTopicQueueNums=4
#是否允許broker自動創(chuàng)建topic昆淡,建議線下開啟锰瘸,線上關(guān)閉
autoCreateTopicEnable=true
#是否允許broker自動創(chuàng)建訂閱組,建議線下開始昂灵,線上關(guān)閉
autoCreateSubscriptionGroup=true
#broker對外服務(wù)的監(jiān)聽端口避凝,
#同一臺機(jī)器部署多個broker,端口號要不同眨补,且端口號之間要相距大些
listenPort=10911
#刪除文件的時間節(jié)點(diǎn)管削,默認(rèn)凌晨4點(diǎn)
deleteWhen=04
#文件保留時間,默認(rèn)48小時
fileReservedTime=120
#commitLog每個文件的大小撑螺,默認(rèn)大小1g
mapedFileSizeCommitLog=1073741824
#consumeQueue每個文件默認(rèn)存30w條含思,根據(jù)自身業(yè)務(wù)進(jìn)行調(diào)整
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
#檢查物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#store存儲路徑,master與slave目錄要不同
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store
#commitLog存儲路徑
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/commitlog
#限制的消息大小
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
#發(fā)消息線程池?cái)?shù)
sendMessageThreadPoolNums=128
#拉去消息線程池?cái)?shù)
pullMessageThreadPoolNums=128
#broker角色:
#ASYSC_MASTER 異步復(fù)制master
#SYSC_MASTER 同步復(fù)制master
#SLAVE 從
brokerRole=SYSC_MASTER
#刷盤方式
#ASYNC_FLUSH 異步刷盤
#SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
broker-b-s.properties:
brokerClusterName=rocketmq-cluster
brokerName=broker-b
#0 -> master ,>0 -> slave
brokerId=1
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10950
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store/slave
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/slave/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
192.168.5.101機(jī)器配置如下:
broker-a-s.properties:
brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=1
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10950
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store/slave
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/slave/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
broker-b.properties:
brokerClusterName=rocketmq-cluster
brokerName=broker-b
brokerId=0
namesrvAddr=192.168.5.100:9876;192.168.5.101:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileInterval=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/rocketmq-4.2/data/store
storePathCommitLog=/usr/local/rocketmq/rocketmq-4.2/data/store/commitlog
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=SYSC_MASTER
flushDiskType=ASYNC_FLUSH
修改日志配置文件:
#創(chuàng)建日志目錄
mkdir -p /usr/local/rocketmq/rocketmq-4.2/logs

#替換*.xml文件中的{user.home}為自己指定的目錄
cd /usr/local/rocketmq/rocketmq-4.2/conf && sed -i 's#${user.home}#/root/svr/rocketmq#g'
*.xml
改參數(shù):

runbroker.sh,runserver.sh啟動參數(shù)默認(rèn)對jvm的堆內(nèi)存設(shè)置比較大(不改啟動不起來)甘晤,如果是虛擬機(jī)非線上環(huán)境需要改下參數(shù)含潘,大小可以根據(jù)自己機(jī)器來決定。

[root@node-100 bin]# pwd
/usr/local/rocketmq/rocketmq-4.2/bin
[root@node-100 bin]# ls
cachedog.sh       mqadmin.cmd   mqbroker.numanode0  mqbroker.xml     mqnamesrv      mqshutdown.cmd  play.sh        runbroker.sh   startfsrv.sh
cleancache.sh     mqadmin.xml   mqbroker.numanode1  mqfiltersrv      mqnamesrv.cmd  nohup.out       README.md      runserver.cmd  tools.cmd
cleancache.v1.sh  mqbroker      mqbroker.numanode2  mqfiltersrv.cmd  mqnamesrv.xml  os.sh           runbroker      runserver.sh   tools.sh
mqadmin           mqbroker.cmd  mqbroker.numanode3  mqfiltersrv.xml  mqshutdown     play.cmd        runbroker.cmd  setcache.sh
[root@node-100 bin]# 
runbroker.sh:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
runserver.sh:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT}  -XX:-UseLargePages"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
注意:兩次機(jī)器都要設(shè)置线婚!

如果還是出現(xiàn)內(nèi)存問題遏弱,可嘗試修改下面幾個文件:

[root@node-100 bin]# pwd
/usr/local/rocketmq/rocketmq-4.2/bin
[root@node-100 bin]# ls *.xml
mqadmin.xml  mqbroker.xml  mqfiltersrv.xml  mqnamesrv.xml
[root@node-100 bin]# 

將這幾個文件中下面參數(shù)給刪掉:

-XX:PermSize    設(shè)置持久代(perm gen)初始值  物理內(nèi)存的1/64    
-XX:MaxPermSize 設(shè)置持久代最大值    物理內(nèi)存的1/4

開始啟動:
先啟動namesrv(兩臺都要啟動):
[root@node-100 bin]# cd /usr/local/rocketmq/rocketmq-4.2/bin
[root@node-100 bin]# nohup sh mqnamesrv &
[1] 2601
[root@node-100 bin]# nohup: 忽略輸入并把輸出追加到"nohup.out"

[root@node-100 bin]# jps
2604 NamesrvStartup
2621 Jps
[root@node-100 bin]# 

因?yàn)閞ocketmq是java開發(fā)的,所以通過jps命令查看namesrv有沒有啟動塞弊,當(dāng)然通過日志文件也可以漱逸,namesrv正常啟動之后缀踪,后續(xù)再分別啟動Broker。

啟動BrokerServer(兩臺都要啟動):
192.168.5.100:
broker-a.properties:
[root@node-100 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-a.properties &
[2] 2646
[root@node-100 bin]# nohup: 忽略輸入并把輸出追加到"nohup.out"

[root@node-100 bin]# jps
2681 Jps
2650 BrokerStartup
2604 NamesrvStartup
[root@node-100 bin]# 
broker-b-s.properties:
[root@node-100 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-b-s.properties &
[3] 2729
[root@node-100 bin]# nohup: 忽略輸入并把輸出追加到"nohup.out"

[root@node-100 bin]# 
[root@node-100 bin]# jps
2789 Jps
2650 BrokerStartup
2604 NamesrvStartup
2733 BrokerStartup
[root@node-100 bin]# 
192.168.5.101:
broker-b.properties:
[root@node-101 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-b.properties &
[2] 7621
[root@node-101 bin]# nohup: 忽略輸入并把輸出追加到"nohup.out"

[root@node-101 bin]# 
[root@node-101 bin]# jps
7570 NamesrvStartup
7667 Jps
7625 BrokerStartup
[root@node-101 bin]# 
broker-a-s.properties:
[root@node-101 bin]# nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-a-s.properties &
[3] 7701
[root@node-101 bin]# nohup: 忽略輸入并把輸出追加到"nohup.out"

[root@node-101 bin]# jps
7570 NamesrvStartup
7625 BrokerStartup
7705 BrokerStartup
7774 Jps
[root@node-101 bin]# 
啟動完成虹脯,查看集群信息:
[root@node-100 bin]# sh mqadmin clusterlist -n 192.168.5.100:9876
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
rocketmq-cluster  broker-a                0     192.168.5.100:10911    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2738
rocketmq-cluster  broker-a                1     192.168.5.101:10950    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2734
rocketmq-cluster  broker-b                0     192.168.5.101:10911    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2734
rocketmq-cluster  broker-b                1     192.168.5.100:10950    V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429538.48 0.2738
[root@node-100 bin]# 
啟動成功驴娃!

測試:

可以啟動RocketMQ的監(jiān)控查看:

監(jiān)控源碼下載地址:
https://github.com/apache/rocketmq-externals.git

配置namesrv
rocketmq.config.namesrvAddr=192.168.5.100:9876

或者:

export NAMESRV_ADDR=192.168.5.100:9876;192.168.5.101:9876
#測試發(fā)送端
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
#測試消費(fèi)端
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

停止命令:

[root@node-101 bin]# sh mqshutdown broker
The mqbroker(7625
7705) is running...
Send shutdown request to mqbroker(7625
7705) OK
[root@node-101 bin]# sh mqshutdown namesrv
The mqnamesrv(7570) is running...
Send shutdown request to mqnamesrv(7570) OK
[3]+  退出 143              nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-a-s.properties
[2]+  退出 143              nohup sh mqbroker -c /usr/local/rocketmq/rocketmq-4.2/conf/2m-2s-sync/broker-b.properties
[root@node-101 bin]# 

本次RocketMQ 集群搭建順利完成:)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末循集,一起剝皮案震驚了整個濱河市唇敞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咒彤,老刑警劉巖疆柔,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異镶柱,居然都是意外死亡旷档,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門歇拆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鞋屈,“玉大人,你說我怎么就攤上這事故觅〕П樱” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵输吏,是天一觀的道長权旷。 經(jīng)常有香客問我,道長贯溅,這世上最難降的妖魔是什么拄氯? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮它浅,結(jié)果婚禮上译柏,老公的妹妹穿的比我還像新娘。我一直安慰自己罚缕,他們只是感情好艇纺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著邮弹,像睡著了一般黔衡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腌乡,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天盟劫,我揣著相機(jī)與錄音,去河邊找鬼与纽。 笑死侣签,一個胖子當(dāng)著我的面吹牛塘装,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播影所,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼蹦肴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了猴娩?” 一聲冷哼從身側(cè)響起阴幌,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卷中,沒想到半個月后矛双,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蟆豫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年议忽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片十减。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡栈幸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫉称,到底是詐尸還是另有隱情侦镇,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布织阅,位于F島的核電站,受9級特大地震影響震捣,放射性物質(zhì)發(fā)生泄漏荔棉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一蒿赢、第九天 我趴在偏房一處隱蔽的房頂上張望润樱。 院中可真熱鬧,春花似錦羡棵、人聲如沸壹若。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽店展。三九已至,卻和暖如春秃流,著一層夾襖步出監(jiān)牢的瞬間赂蕴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工舶胀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留概说,地道東北人碧注。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像糖赔,于是被迫代替她去往敵國和親萍丐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容