Kafka20:增加副本因子

Kafka20:增加副本因子

1. 增加副本因子

在生产环境当中,由于某个主题的重要等级需要提升,我们考虑增加副本。副本数的增加需要先制定计划,然后根据计划执行。

2. 创建topic

root@redis01:/usr/local/kafka# bin/kafka-topics.sh --bootstrap-server redis01:9092 --create --partitions 3 --replication-factor 1 --topic four
notion image
# 尝试使用命令行修改副本 root@redis01:/usr/local/kafka# bin/kafka-topics.sh --bootstrap-server redis01:9092 --alter --partitions 3 --replication-factor 2 --topic four
notion image
  • 这里无法像增加分区一样,无法通过命令行增加副本。

3. 手动增加副本存储

3.1 创建副本计划

  • 创建副本存储计划(所有副本都指定存储在broker0、broker1、broker2 中)。
root@redis01:/usr/local/kafka# vim increase-replication-factor.json

3.2 输入以下内容

  • increase-replication-factor.json
{ "version": 1, "partitions": [{ "topic": "four", "partition": 0, "replicas": [0, 1, 2] }, { "topic": "four", "partition": 1, "replicas": [0, 1, 2] }, { "topic": "four", "partition": 2, "replicas": [0, 1, 2] }] }

3.3 执行副本存储计划

root@redis01:/usr/local/kafka# ./bin/kafka-reassign-partitions.sh --bootstrap-server redis01:9092 --reassignment-json-file increase-replication-factor.json --execute
notion image

3.4 验证副本存储计划

root@redis01:/usr/local/kafka# ./bin/kafka-reassign-partitions.sh --bootstrap-server redis01:9092 --reassignment-json-file increase-replication-factor.json --verify
notion image

3.5 还可以进一步验证

root@redis01:/usr/local/kafka# ./bin/kafka-topics.sh --bootstrap-server redis01:9092 --topic four --describe
notion image