1. 增加副本因子
在生产环境当中,由于某个主题的重要等级需要提升,我们考虑增加副本。副本数的增加需要先制定计划,然后根据计划执行。
2. 创建topic
root@redis01:/usr/local/kafka# bin/kafka-topics.sh --bootstrap-server redis01:9092 --create --partitions 3 --replication-factor 1 --topic four
# 尝试使用命令行修改副本 root@redis01:/usr/local/kafka# bin/kafka-topics.sh --bootstrap-server redis01:9092 --alter --partitions 3 --replication-factor 2 --topic four
- 这里无法像增加分区一样,无法通过命令行增加副本。
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
3.4 验证副本存储计划
root@redis01:/usr/local/kafka# ./bin/kafka-reassign-partitions.sh --bootstrap-server redis01:9092 --reassignment-json-file increase-replication-factor.json --verify
3.5 还可以进一步验证
root@redis01:/usr/local/kafka# ./bin/kafka-topics.sh --bootstrap-server redis01:9092 --topic four --describe