RocketMQ 安裝
官網(wǎng)http://rocketmq.apache.org/
1.安裝
需要先安裝環(huán)境所需要的工具: JDK汹来、Maven记舆。
構(gòu)建Dledger:
[root@localhost ~]# git clone https://github.com/openmessaging/openmessaging-storage-dledger.git
[root@localhost ~]# cd openmessaging-storage-dledger/
[root@localhost openmessaging-storage-dledger]# mvn clean install -DskipTests
構(gòu)建RocketMQ:
[root@localhost ~]# git clone https://github.com/apache/rocketmq.git
[root@localhost rocketmq]# cd rocketmq
[root@localhost rocketmq]# git checkout -b store_with_dledger origin/store_with_dledger
[root@localhost rocketmq]# mvn -Prelease-all -DskipTests clean install -U
修改文件:
[root@localhost rocketmq]# cd distribution/target/apache-rocketmq
分別修改三個文件: bin/runserver.sh院尔、 bin/runbroker.sh御板、 bin/tools.sh。
修改內(nèi)容如下:
找到以下三行虚吟,刪除后面的兩行寸认,并將第一行的值修改為 系統(tǒng)安裝JDK的主目錄
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
[root@localhost bin]# vim runserver.sh
[root@localhost bin]# vim runbroker.sh
[root@localhost bin]# vim tools.sh
修改后如下:
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java/jdk1.8.0_221
啟動RocketMQ:
[root@localhost apache-rocketmq]# sh bin/dledger/fast-try.sh start
上面的啟動指令會在當(dāng)前機(jī)器上啟動一個 nameserver 和三個 broker,三個 broker 其中一個是 master串慰,另外兩個是 slave偏塞,可以組成一個最小可用的 RocketMQ 集群。
檢查 RocketMQ 的集群狀態(tài):
[root@localhost apache-rocketmq]# sh bin/mqadmin clusterList -n 127.0.0.1:9876
如上模庐,說明 RocketMQ 集群啟動成功了。
BID 為 0 的就是 Master油宜, BID 大于 0 的就都是 Slave掂碱,其實(shí)這里也可以叫做 Leader 和 Follower怜姿。
嘗試 Slave 自動切換為 Master 。
三臺機(jī)器的地址分別是:
10.20.0.50:30931 (master)
10.20.0.50:30911
10.20.0.50:30921
通過 lsof -i:30931 (或者 netstat -tunlp | grep 30931 ) 找出對應(yīng)端口的進(jìn)程PID疼燥, kill -9 殺死進(jìn)程沧卢。然后再查看集群信息:
[root@localhost apache-rocketmq]# netstat -tunlp | grep 30931
tcp6 0 0 :::30931 :::* LISTEN 23484/java
[root@localhost apache-rocketmq]# kill -9 23484
[root@localhost apache-rocketmq]# sh bin/mqadmin clusterList -n 127.0.0.1:9876
此時可以看到 BID 為 0 的節(jié)點(diǎn),變成了另一個 Broker醉者,即 Slave 切換成了 Master但狭。
關(guān)閉的指令:
# sh bin/dledger/fast-try.sh stop
2.部署正式三臺 NameServer
按照上述步驟,安裝好JDK撬即、maven立磁,構(gòu)建好 Dledger 和 RocketMQ,編輯修改對應(yīng)的文件剥槐,設(shè)置 JAVA_HOME 即可唱歧。
啟動 NameServer :
[root@localhost apache-rocketmq]# nohup sh bin/mqnamesrv &
NameServer 監(jiān)聽的端口默認(rèn)是 9876。三臺設(shè)備上都啟動了 NameServer粒竖, 他們的端口就都是 9876颅崩。