单机部署Rocketmq集群

RocketMQ单机部署集群

环境准备

系统: centos 7
Java:1.8以上
关闭防火墙
软件包下载路径
https://archive.apache.org/dist/rocketmq/4.6.1/

安装部署

[root@rocketmq ~]# unzip rocketmq-all-4.6.1-bin-release.zip

创建存储(message持久化)目录,每一个broker制定一个持久化路径

mkdir -p /rocketmqStore/a-m
mkdir -p /rocketmqStore/a-s
mkdir -p /rocketmqStore/b-m
mkdir -p /rocketmqStore/b-s

启动nameserver,默认端口9876

[root@rocketmq ~]# nohup rocketmq-all-4.6.1-bin-release//bin/mqnamesrv &
[root@rocketmq ~]# nohup: 忽略输入并把输出追加到"nohup.out"

集群的配置文件

[root@rocketmq conf]# ll /root/rocketmq-all-4.6.1-bin-release/conf/
总用量 36
drwxr-xr-x. 2 root root   118 3月   9 13:58 2m-2s-async   ##2主2从不实时同步配置文件
drwxr-xr-x. 2 root root   118 3月   9 14:38 2m-2s-sync   ##2主2从实时同步
drwxr-xr-x. 2 root root    91 11月 28 20:47 2m-noslave    ##2主0从
-rw-r--r--. 1 root root   949 1月   6 16:43 broker.conf     ##只起单个broker的配置文件
drwxr-xr-x. 2 root root    72 11月 28 20:47 dledger
-rw-r--r--. 1 root root 14978 11月 28 20:47 logback_broker.xml
-rw-r--r--. 1 root root  3836 11月 28 20:47 logback_namesrv.xml
-rw-r--r--. 1 root root  3761 11月 28 20:47 logback_tools.xml
-rw-r--r--. 1 root root  1305 11月 28 20:47 plain_acl.yml
-rw-r--r--. 1 root root   834 11月 28 20:47 tools.yml

配置2主2从:

[root@rocketmq ~]# cd /root/rocketmq-all-4.6.1-bin-release/conf/2m-2s-sync
[root@rocketmq 2m-2s-sync]# ll
总用量 16
-rw-r--r-- 1 root root 1008 3月   9 14:32 broker-a.properties
-rw-r--r-- 1 root root 1002 3月   9 14:32 broker-a-s.properties
-rw-r--r-- 1 root root 1008 3月   9 14:33 broker-b.properties
-rw-r--r-- 1 root root 1002 3月   9 14:33 broker-b-s.properties
cd /root/rocketmq-all-4.6.1-bin-release/conf/
vim 2m-2s-sync/broker-a.properties


brokerIP1={外网ip}
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
storePathRootDir=/rocketmqStore/a-m
namesrvAddr={外网ip}:9876

vim 2m-2s-sync/broker-a-s.properties

brokerIP2={外网ip}
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10811
storePathRootDir=/rocketmqStore/a-s
namesrvAddr={外网ip}:9876

vim 2m-2s-sync/broker-b.properties

brokerIP3={外网ip}
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10711
storePathRootDir=/rocketmqStore/b-m
namesrvAddr={外网ip}:9876

vim 2m-2s-sync/broker-b-s.properties

brokerIP4={外网ip}
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10611
storePathRootDir=/rocketmqStore/b-s
namesrvAddr={外网ip}:9876

启动namesrv、broker前修改bin/runserver.sh、bin/runbroker.sh

修改java内存大小(默认为4G,服务器内存无法分配那么多)

vim bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms64m -Xmx64m -Xmn32m"

vim bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms64m -Xmx64m -Xmn32m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"

先启动mqnamesrv

nohup mqnamesrv &

然后启动4个broker -c用于指定启动配置文件

cd /conf
nohup  mqbroker -c broker-a.properties  &
nohup  mqbroker -c broker-a-s.properties  &
nohup  mqbroker -c broker-b.properties  &
nohup  mqbroker -c broker-b-s.properties  &

生产者和消费者测试

声明nameserver、rocketmq环境变量

export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-all-4.3.2-bin-release
export NAMESRV_ADDR='localhost:9876'

PATH=$PATH:$JAVA_HOME/bin:$ROCKETMQ_HOME/bin
export PATH

生产者测试(因为配置了ROCKETMQ_HOME,所以不需要加路径前缀):

tools.sh org.apache.rocketmq.example.quickstart.Producer

消费者测试:

tools.sh org.apache.rocketmq.example.quickstart.Consumer

Rocketmq-console安装

git下载rocketmq-console源码
cd rocketmq-console
mvn clean package -Dmaven.test.skip=true

注意:打包前在rocketmq-console中配置namesrv集群地址

rocketmq.config.namesrvAddr=47.98.47.1

上传服务器后,启动rocketmq-console:

java -jar rocketmq-console-ng-1.0.0.jar

启动成功后,通过浏览器访问,localhost:8080进入控制台

posted @ 2021-07-21 12:50  编程の小白  阅读(274)  评论(0编辑  收藏  举报