.RocketMQ的安装
一.RocketMQ安装
1.1.下载RocketMQ
下载地址:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/
下载后解压
-
Bin : 可执行文件目录
-
config:配置文件目录
-
Lib : 依赖库,一堆Jar包
1.2.配置ROCKETMQ_HOME
解压压缩包,配置 ROCKETMQ_HOME
1.3.启动MQ
- 启动NameServer
Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行 start mqnamesrv.cmd
,启动NameServer。
成功后会弹出提示框,此框勿关闭。
- 启动Broker
进入至‘MQ文件夹\bin’下,修改Bean目录下的 runbroker.cmd
中JVM占用内存大小
CMD执行start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
,启动Broker。
成功后会弹出提示框,此框勿关闭
1.4.RocketMQ存储结构
RocketMQ安装好之后会在用户目录下产生一个store目录用来存储相关数据:
- Commitlog : 消息是存储写在commitlog目录中,一mapperdFile文件顺序存储消息。
- Config : 存放运行期间的配置文件
- Consumerqueue : 该目录中存放的是队列,consume queue存放着commitlog中的消息的索引位置
- Index :存放着消息索引文件 indexFile,用来实现根据key进行消息的快速查询
- Abort : 该文件在broker启动后自动创建,正常关闭abort会消失
- Checkpoint :记录 Commitlog ,Consumerqueue 和index 文件的最后刷盘时间戳
[问
]RocketMQ数据存储在磁盘会影响性能吗?
不会,RocketMQ的性能在所有的MQ中是比较高的,主要是因为RocketMQ使用了mmap零拷贝技术,consumequeue中的数据是顺序存放的,还引入了PageCache的预读取机制,使得对 consumequeue文件的读取几乎接近于内存读取,即使在有消息堆积情况下也不会影响性能。
2.RocketMQ插件-控制台
为了方便管理,我们需要安装一个可视化插件
2.1.下载插件
RocketMQ可视化管理插件下载地址:https://github.com/apache/rocketmq-externals/releases
2.2.修改配置
解压后,修改配置:src/main/resource/application.properties ,这里需要指向Name Server 的地址和端口 如下:
2.3.打包插件
回到安装目录,执行: mvn clean package -Dmaven.test.skip=true
,然后会在target目录生成打包后的jar文件
2.4.启动插件
进入 target 目录,执行 java -jar rocketmq-console-ng-1.0.0.jar , 访问 http://localhost:8080
二.RocketMQ的原理
1.RokcetMQ架构
RocketMQ开发官方文档:
https://github.com/apache/rocketmq/blob/master/docs/cn/RocketMQ_Example.md
RocketMQ的集群架构如下
RocketMQ架构上主要