rocketmq 单机环境搭建

前言

       最近做项目,boss要求将kafka切换为rocket mq,玩了一下rocketmq的动态切换。发现rocketmq能力还挺强大的,首先Windows下搭建一套环境。

1. 下载mq

      访问apache的官网下载rocketmq,目前最新版本是4.5.1,下载bin版本。当然也可以下载source版本自己编译。

 下载完后,解压缩

从lib的jar可以看出rocketmq是纯java开发的,貌似阿里主要使用java开发。

2. rocketmq架构图

可以看到rocketmq主要有name server与broker组成,与producer、consumer组成生产者,消费者。name server是无状态的元数据管理中心集群,用于替代zookeeper的作用。

2.1 准备

配置JAVA_HOME和ROCKETMQ_HOME

 2.2 启动name server

执行cmd,cd到bin目录,执行mqnamesrv,然后?

由于使用CMS回收器,笔者因为JDK1.8下载需要登录,搞了一个JDK12,悲剧了

执行 mqnamesrv

linux同理,配置好JAVA_HOME即可,linux命令

nohup ./mqnamesrv &

2.3 执行broker

真正到存储消息的队列节点了,启动broker,这里自动创建topic,又不是生产,没必要申请

mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true 

linux,报了内存不足

nohup ./mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true &

居然要8G空间,我汗,我是2G虚拟机

设置一下吧,由于JDK8,需要配置元数据区meta

对runserver.sh 、runbroker.sh启动脚本中对于内存的限制,比如​改成如下示例:

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn192m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

当然笔者比较拮据,机器好可以配置高点

Linux默认namesrv使用CMS收集器,分配4G

broker使用G1收集器,分配8G,笔者做测试都分配512M,其实namesrv可以配置低一点,比如256M;broker分配高一些,因为broker负载重,当然做测试就无所谓了,随时可以调整。

修改后启动成功

3. rocketmq console

rocketmq有开源的管理端:https://github.com/apache/rocketmq-externals,支持很多功能,最常用的是console

打开rocketmq-console,配置好name server,元数据集群有broker的信息,producer与consumer也是这里获取的。

执行后,访问:http:localhost:8180/

 还支持中文,良心

总结

搭建rocketmq很简单,可以看出rocketmq的设计从很多方面延用了kafka的设计。下一章讲架构设计与kafka的区别,实战api。api集成spring boot使用

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章