rocketMQ实践--入门篇

rocketMQ环境搭建


unzip rocketmq-all-4.3.2-bin-release.zip 
cd rocketmq-all-4.3.2-bin-release/

如下图
在这里插入图片描述
到此安装已经结束


rocketMQ的软件目录说明
在这里插入图片描述
1.benchmark目录包括运行benchmark程序的shell脚本
2.bin目录包括各个组件启动/停止的脚本
3.conf目录是配置文件目录
4.lib目录是rocketMQ运行所使用的jar包

bin目录说明
在这里插入图片描述
conf目录说明
在这里插入图片描述

准备工作已经完成,接下来便可以启动相应的组件


启动nameserver
在bin目录下,执行如下指令:

nohup sh mqnamesrv > /root/logs/rocketmqlogs/namesrv.log 2>&1 &

查看日志,确定是否成功:

tail -f /root/logs/rocketmqlogs/namesrv.log 

查看端口是否已经被监听

netstat -nltp

在这里插入图片描述
可以在其他机器上以同样的方法启动部署nameserver,以支持高可用


启动broker
配置broker单节点启动, 修改自带的配置文件broker.conf

namesrvAddr=namesrvIP:9876 #nameserver的IP,多个用分号隔开
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
listenPort=10911
storePathRootDir=/home/rocketmq/store-test #存储路径指定
brokerIP1=本机公网IP #很重要 ,说明如下

broker启动的时候会遍历本地的所有网卡ip,过滤掉 "127.0"和"192.168"开头的ip地址 然后得到第一个ip,作为本机ip; 那么问题来了,当这台机器有很多别的网卡(如:安装docker后) broker使用的ip可能是docker的,这就会导致客户端无法连接

执行如下指令,启动
我是在conf目录下执行,其他目录请自行修改脚本路径

nohup sh ../bin/mqbroker -c broker.conf > /root/logs/rocketmqlogs/broker.log 2>&1 &

查看日志

tail -f /root/logs/rocketmqlogs/broker.log 

查看端口
在这里插入图片描述
broker高可用配置(两主两从,从节点交叉部署),逻辑关系如下
在这里插入图片描述
配置文件如下:
机器1上的master broker配置
broker-a

namesrvAddr=namesrvIP:9876;namesrvIP2:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
storePathRootDir=/home/rocketmq/store-a
brokerIP1=本机公网IP

机器2上的master broker配置
broker-b

namesrvAddr=namesrvIP:9876;namesrvIP2:9876
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
storePathRootDir=/home/rocketmq/store-b
brokerIP1=本机公网IP

机器1上的slave broker配置
slave-b

namesrvAddr=namesrvIP:9876;namesrvIP2:9876
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10912
storePathRootDir=/home/rocketmq/store-b
brokerIP1=本机公网IP

机器2上的slave broker配置
slave-a

namesrvAddr=namesrvIP:9876;namesrvIP2:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10912
storePathRootDir=/home/rocketmq/store-a
brokerIP1=本机公网IP

机器1上的配置文件

-rw-r--r-- 1 root root 928 Nov  5  2018 broker-a.properties
-rw-r--r-- 1 root root 922 Nov  5  2018 broker-b-s.properties

机器2上的配置文件

-rw-r--r-- 1 root root 928 Nov  5  2018 broker-b.properties
-rw-r--r-- 1 root root 922 Nov  5  2018 broker-a-s.properties

然后使用如下命令,分别启动四个broker,即可

nohup sh ../bin/mqbroker -c config_file > /root/logs/rocketmqlogs/broker.log 2>&1 &

说明: config_file是各个broker对应的配置文件,执行命令前请替换;broker.log是各个broker的日志文件,执行命令前请替换

这样一个高可用的RocketMQ集群就搭建好了


rocketMQ-console安装

rocketMQ-console是可视化管理平台,可以方便我们对mq的管理;不过官方的安装包中并没有该组件,该组件是由社区在维护,rocketMQ的各种对外扩展功能均在rocketmq-externals项目中;GitHub地址:
https://github.com/apache/rocketmq-externals
在这里插入图片描述

rocketMQ-console是一个spring boot项目,所以我们下载此项目,编译,打包,发布即可使用了
项目配置简单修改下
在这里插入图片描述
部署成功之后,访问,界面如下
在这里插入图片描述
rocketMQ环境搭建到此结束,使用愉快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值