专业的编程技术博客社区

网站首页 > 博客文章 正文

RocketMQ 的持久化配置

baijin 2024-11-18 08:56:55 博客文章 7 ℃ 0 评论

RocketMQ 的持久化配置主要涉及到 Broker 的配置文件 broker.conf。以下是一些关键的配置项,用于控制 RocketMQ 的持久化行为:

1. 刷盘策略(FlushDiskType)

  • flushDiskType=ASYNC_FLUSH:异步刷盘,消息写入到 PageCache 后立即返回成功状态,操作系统负责将数据刷写到磁盘。
  • flushDiskType=SYNC_FLUSH:同步刷盘,消息写入到 PageCache 后,强制将数据刷写到磁盘后才返回成功状态。

2. 主从复制(BrokerRole)

  • brokerRole=ASYNC_MASTER:异步复制的主节点,主节点写入消息后立即返回,从节点异步同步数据。
  • brokerRole=SYNC_MASTER:同步复制的主节点,主节点写入消息后等待从节点同步完成才返回。
  • brokerRole=SLAVE:从节点,用于数据备份。

3. 持久化配置示例

以下是一个 broker.conf 文件的示例,包含了持久化相关的配置:

# 是否允许 Broker 自动创建 Topic,建议线上设置为 false
autoCreateTopicEnable=true

# 是否允许 Broker 自动创建订阅组,建议线上设置为 false
autoCreateSubscriptionGroup=true

# Broker 的角色:ASYNC_MASTER, SYNC_MASTER, SLAVE
brokerRole=ASYNC_MASTER

# 刷盘策略:ASYNC_FLUSH, SYNC_FLUSH
flushDiskType=ASYNC_FLUSH

# 消息存储路径
storePathRootDir=/data/rocketmq/store
# CommitLog 存储路径
storePathCommitLog=/data/rocketmq/store/commitlog
# 消费队列存储路径
storePathConsumeQueue=/data/rocketmq/store/consumequeue
# 消息索引存储路径
storePathIndex=/data/rocketmq/store/index
# checkpoint 文件存储路径
storeCheckpoint=/data/rocketmq/store/checkpoint
# abort 文件存储路径
abortFile=/data/rocketmq/store/abort

# 同步刷盘间隔时间,单位毫秒
flushIntervalCommitLog=1000
# 异步刷盘线程数
flushCommitLogTimed=false
# 消息到达一定数量时触发刷盘,与时间间隔配合使用
flushCommitLogLeastPages=4
# 消息到达一定大小触发刷盘,与时间间隔配合使用
flushCommitLogThoroughInterval=10000

# 主从复制相关配置
# 同步复制时,从节点向主节点拉取消息的最大间隔时间,单位毫秒
replicaWaitTimeMillsInSyncState=5000
# 主从复制时,消息复制的方式:SYNC, ASYNC
brokerId=0
# 主节点地址,从节点配置
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

请注意,以上配置只是一个示例,具体的配置需要根据你的实际部署环境和需求进行调整。在配置文件中,注释使用 # 开头。配置完成后,需要重启 Broker 服务以使配置生效。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表