Centos安装RocketMq

前言

RocketMq是当前用的比较广泛的一款消息队列中间件,核心组件有NameServer、Broker、Producer、Consumer 本篇简单记录下RocketMq的安装

一、下载路径

Index of /dist/rocketmq

二、文件上传并压缩

      

RocketMq5.0以上版本变化较大,这里还是研究下4.x版本

解压后文件目录结构也是比较清晰

创建RocketMq存储相关目录

mkdir -p /data/rocketmq/store /data/rocketmq/store/commitlog /data/rocketmq/store/consumequeue /data/rocketmq/store/index 

三、启动Namesrv

   后台启动Namesrv ,Namesrv主要维护topic的路由信息,集群中的Namesrv相互独立,不互相通信,启动三台机器上的Namesrv

nohup sh mqnamesrv > /data/rocketmq/nameserver.log 2>&1 &

四、启动Broker

     Broker存储消息数据,接收来自Producer、Consumer的请求,有多种部署模式,在解压后的文件Conf目录给出了对应不同模式的配置文件

  这里搭建一个两主两备异步刷盘集群(只有三台机器也是可以的。。。) 

    

192.168.0.117

192.168.0.118

192.168.0.119

下面给出各机器的broker.conf配置信息

192.168.0.117

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog
storePathConsumeQueue=/data/rocketmq/store/consumequeue
brokerIP1=192.168.0.117
namesrvAddr=host117:9876;host118:9876;host119:9876

192.168.0.118(brokeId为1代表备份节点)

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog
storePathConsumeQueue=/data/rocketmq/store/consumequeue
namesrvAddr=host117:9876;host118:9876;host119:9876
brokerIP1=192.168.0.118

192.168.0.119

brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog
storePathConsumeQueue=/data/rocketmq/store/consumequeue
brokerIP1=192.168.0.119
namesrvAddr=host117:9876;host118:9876;host119:9876

进入bin目录启动broker

nohup sh mqbroker -n host117:9876,host118:9876,host119:9876 -c ../conf/broker.conf autoCreateTopicEnable=true > /data/rocketmq/broker.log 2>&1 &

我这边环境上的JDK是11版本的,在启动Broker时碰到点问题

这个跟高版本jdk对待反射的策略有关,在 runbroker.sh  加一行配置就解决问题了

JAVA_OPT="${JAVA_OPT} --add-exports java.base/jdk.internal.ref=ALL-UNNAMED"

broker启动成功后的效果是这样的

执行命令查看NameSrv上的集群

sh mqadmin clusterList -n 192.168.0.117:9876

查看另外两台机器Namesrv上注册的broker信息,可以看到跟117机器上的信息是一样的,也就是NameSrv上保存了全量信息

  

    RocketMq命令官方文档,前面有用到部分RocketMq命令,这些自然是要看官方文档了,具体看这里RocketMq官方文档

五、命令行测试生产者、消费者

     RocketMq给我们提供了些Demo,让我们来通过命令感受下,

    生产消息,进入RocketMq bin目录,执行命令

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

执行后发现有报错

加下环境变量

命令执行成功,现在执行消费命令

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

六、rocketmq-dashboard 操作

    命令行能实现rocketMq的管理维护但是不够直观,有一个可视化管理界面项目,rocketmq-dashboard项目源码

这种可视化界面就很直观

七、rocketmq源码

   RocketMq在使用层面主要就是消息的生产、消费 但是底层逻辑,消息存储逻辑比较复杂,我们可以通过研究源码深入了解下

  1.  Idea配置Producer   

           

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值