INDEX
broker.conf
干货见注释
properties
### 集群名
brokerClusterName=DefaultCluster
### nameserver
# nameserver 地址
namesrvAddr=192.168.3.76:9876
### broker
# broker名,同名则主从
brokerName=a-m
# broker id,唯一
brokerId=0
# borker 端口
listenPort=10911
# broker 的 ip,可以自动识别,多网卡等场景可以手动指定
#brokerIP1=172.18.14.4
# broker 角色,ASYNC_MASTER / SYNC_MASTER / SLAVE
brokerRole=ASYNC_MASTER
# 刷盘类型,ASYNC_FLUSH / SYNC_FLUSH
flushDiskType=ASYNC_FLUSH
### 开关
# 能否自动创建 topic
autoCreateTopicEnable=true
# 能否自动创建订阅组
autoCreateSubscriptionGroup=true
# 是否接受权限控制,权限相关配置见 ~/conf/plain_acl.yml
aclEnable=true
# 是否允许追踪消息
traceTopicEnable=true
### 存储路径
# 存储根路径
storePathRootDir=/data/rocketmq-4.9.4/store/a-m
# 存储 commit log 的路径,生产者发送的各个 topic 的消息信息,文件名是数字,此数字是此文件第一个字符在所有消息中索引
storePathCommitLog=${storePathRootDir}/commitlog
# 存储 consume queue 的路径,相当于 commit log 的聚簇索引,其下目录结构 ~/topic_name/queue_id/queue文件
# 每个文件 30w 条记录,每条 20字节, 每条记录结构:commitlog 物理偏移量(8B),消息长度(4B),tag hash值(8B)
storePathConsumerQueue=${storePathRootDir}/consumequeue
# 存储消息索引的路径,相当于 commit log 基于 key 的散列索引,文件名即创建时间戳,一个文件记满后会创建新的,因此hash槽是重的
# 每个文件由 3 部分组成,因此文件大小是固定的,
# 头:40B
# hash 槽:500w * 4B,每个消息靠消息 key 的 hash%500w 计算 hash 槽,里面存对应索引项的偏移量
# 索引项:2000w * 20B,结构为:key hash(4B),commit log偏移量(8B),时间偏移量(4B),下一个索引项指针(4B)
# hash 冲突时,槽会指向新索引项,并由下一个索引项指针指向原索引项,因此,整个文件其实就是个hashmap,大小固定是为了方便计算偏移
storePathIndex=${storePathRootDir}/index
# 存储检查点的路径,commitLog、ConsumeQueue、Index文件的刷盘时间点,broker异常结束恢复后,会按此数据恢复
storeCheckpoint=${storePathRootDir}/checkpoint
### 磁盘清理
# 磁盘文件空间充足情况下,默认每天什么时候执行删除过期文件
deleteWhen=04
# CommitLog、ConsumeQueue 文件以偏移量命名。这些文件若超过了此参数配置的时间(单位小时)则认为是过期文件,随时可以删除
fileReservedTime=48