- 什么是Broker
- Broker 存储目录 结构
- Broker启动流程
- Broker关闭流程
Broker是RocketMQ中核心的模块之一,主要负责处理各种TCP请求(计算)和存储消息(存储)
Broker分为Master和Slave
Master主要提供服务,Slave在Master宕机后提供消费服务
- Commitlog:这是一个目录,其中包含具体的commitlog文件。文件名长度为20个字符,文件名 由 该文件保存消息的最大物理offset值 在高位补0组成。每个文件大小一般是1GB,可以通过mapedFileSizeCommitLog进行配置
- consumequeue:这是一个目录,包含该 Broker 上 所有的 Topic 对应的 消费队列文件信息。消费队列文件的格式为“./consumequeue/Topic名字/queue id/具体消费队列文件”。每个消费队列 其实是 commitlog的一个索引,提供给消费者做拉取消息、更新位点使用
- Index:这是一个目录,全部的文件 都是按照 消息key创建的Hash索引。文件名 是用 创建时的时间戳命名的
- Config:这是一个目录,保存了 当前Broker中 全部的Topic、订阅关系和消费进度。这些数据Broker会定时从内存持久化到磁盘,以便宕机后恢复
- abort:Broker 是否异常关闭的标志。正常关闭时该文件会被删除,异常关闭时则不会。当Broker重新启动时,根据 是否异常宕机 决定 是否需要重新构建Index索引等操作
- checkpoint:Broker最近一次正常运行时的状态,比如最后一次正常刷盘的时间、最后一次正确索引的时间等
启动命令分为两个脚本:./bin/mqbroker 和./bin/runbroker.sh
mqbroker 准备了RocketMQ 启动本身的环境数据,比如 ROCKETMQ_HOME 环境变量
runbroker.sh 主要设置了JVM启动参数,比如JAVA_HOME、Xms、Xmx
在该脚本中找到 su-admin-c ′ulimit-n′,将 admin 修改为RocketMQ启动账号,在启动RocketMQ之前执行该脚本即可
Broker关闭流程


