You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pulsar是否支持将多份BookKeeper副本存储在不同集群中

跨多数据中心强一致副本存储方案

你描述的场景可以通过Pulsar底层依赖的BookKeeper的区域感知强制副本放置策略原生实现,不需要额外开发,也不用依赖Pulsar异步跨集群复制能力(异步复制无法满足强一致性要求)。核心思路是将三个数据中心的所有bookie节点纳入同一个BookKeeper集群统一管理,通过策略强制每个segment的副本分布在不同数据中心。

具体配置步骤
  • 给每个数据中心的bookie节点配置所属区域标识,修改所有bookie节点的bookkeeper.conf文件:
    # 按节点所在数据中心替换为dc1、dc2、dc3即可
    group=dc1
    
  • 配置副本放置策略,在所有broker节点的broker.conf以及bookie节点的bookkeeper.conf中添加以下配置:
    ensemblePlacementPolicy=org.apache.bookkeeper.client.EnforcedRegionEnsemblePlacementPolicy
    # 配置所有可用的数据中心列表
    enforcedRegionEnsemblePlacementPolicy.regions=dc1,dc2,dc3
    # 要求副本至少分布在3个区域才能满足 durability 要求
    enforcedRegionEnsemblePlacementPolicy.minRegionsForDurability=3
    # 每个区域仅存1份副本
    enforcedRegionEnsemblePlacementPolicy.replicasPerRegion=1
    
  • 配置业务命名空间的持久化策略,匹配3副本要求:
    pulsar-admin namespaces set-persistence \
      --ensemble-size 3 \
      --write-quorum-size 3 \
      --ack-quorum-size 3 \
      你的租户名称/你的命名空间名称
    
    强一致场景下ack-quorum-size需要设置为3,写入请求会等待三个数据中心的副本全部落盘后才返回成功,完全满足你要求的强一致特性。
落地注意事项
  • 该方案的写入延迟取决于三个数据中心之间的网络RTT,需要提前评估跨DC网络质量是否符合业务的延迟要求。
  • 若单个数据中心完全故障,可临时将minRegionsForDurability调整为2保证业务可用性,等故障数据中心恢复后再将配置改回3即可。
  • 该方案和Pulsar的异步跨集群复制特性是完全独立的,异步跨集群复制仅适用于多活集群间的最终一致数据同步,不满足你的强一致场景需求。

内容的提问来源于stack exchange,提问作者dashenswen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:45:03