首页/数据/数据工程与 ETL 速查/机架感知副本与就近读取
Kafka64 条

机架感知副本与就近读取

配置 broker.rack 后,Kafka 尽量把同一分区的副本分散到不同机架,降低单机架故障影响;消费者也可开启机架感知从就近副本拉取,节省跨区流量。

Broker 侧broker.rack=<机架/可用区标识>,影响副本分配
消费侧client.rack + replica.selector.class 从最近副本读
收益容灾与跨区流量成本优化

配置片段

配置片段
# broker.properties
broker.rack=az-a

# consumer.properties
client.rack=az-a
replica.selector.class=org.apache.kafka.common.replica.RackAwareReplicaSelector
机架感知只影响新创建主题的副本分配;存量主题要重新分配才会按新拓扑排布。

易错点

  • rack 标识在扩容/搬迁后若不一致,副本分布可能重回单机架
  • 就近读取依赖副本已有数据,跨区延迟高时消费可能落后

数据来源与参考

  • Apache Kafka 官方文档:Rack Awareness 与 Followers Fetching
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌