RocketMQ 安装
1.安装
需要先安装环境所需要的工具: JDK、Maven。
构建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
构建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。
修改内容如下:
找到以下三行,删除后面的两行,并将第一行的值修改为 系统安装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
上面的启动指令会在当前机器上启动一个 nameserver 和三个 broker,三个 broker 其中一个是 master,另外两个是 slave,可以组成一个最小可用的 RocketMQ 集群。
检查 RocketMQ 的集群状态:
[root@localhost apache-rocketmq]# sh bin/mqadmin clusterList -n 127.0.0.1:9876
最小的rocketMq集群状态
如上,说明 RocketMQ 集群启动成功了。
BID 为 0 的就是 Master, BID 大于 0 的就都是 Slave,其实这里也可以叫做 Leader 和 Follower。
尝试 Slave 自动切换为 Master 。
三台机器的地址分别是:
10.20.0.50:30931 (master)
10.20.0.50:30911
10.20.0.50:30921
通过 lsof -i:30931 (或者 netstat -tunlp | grep 30931 ) 找出对应端口的进程PID, kill -9 杀死进程。然后再查看集群信息:
[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
image-20210926141000831
此时可以看到 BID 为 0 的节点,变成了另一个 Broker,即 Slave 切换成了 Master。
关闭的指令:
# sh bin/dledger/fast-try.sh stop
2.部署正式三台 NameServer
按照上述步骤,安装好JDK、maven,构建好 Dledger 和 RocketMQ,编辑修改对应的文件,设置 JAVA_HOME 即可。
启动 NameServer :
[root@localhost apache-rocketmq]# nohup sh bin/mqnamesrv &
NameServer 监听的端口默认是 9876。三台设备上都启动了 NameServer, 他们的端口就都是 9876。
网友评论