Apache kafka Kafka自动复制到新节点
我是卡夫卡的新手,想了解以下场景中阿帕奇·卡夫卡的行为 假设我有3个主题:Apache kafka Kafka自动复制到新节点,apache-kafka,confluent-platform,Apache Kafka,Confluent Platform,我是卡夫卡的新手,想了解以下场景中阿帕奇·卡夫卡的行为 假设我有3个主题: 分区3 经纪人3 复制因子3 最小isr 2 生产者确认=全部 不洁领袖选举失实 根据我的理解,如果broker 1宕机,则不会造成伤害,也不会造成数据丢失,因为isr=2,写入将成功 如果节点1返回,它将再次跟随领导者并赶上 我的问题是,如果节点1再也没有返回..它也从isr列表中删除了。。。我想要的复制系数是3。。。如果我添加新的节点4..如何自动使节点4从失败的节点1复制分区…以便仍然保持3的复制?主题zook
- 分区3
- 经纪人3
- 复制因子3
- 最小isr 2
- 生产者确认=全部
- 不洁领袖选举失实
isr=2
,写入将成功
如果节点1返回,它将再次跟随领导者并赶上
我的问题是,如果节点1再也没有返回..它也从isr列表中删除了。。。我想要的复制系数是3。。。如果我添加新的节点4..如何自动使节点4从失败的节点1复制分区…以便仍然保持3的复制?主题zookeper中存储的副本,如果添加新代理,则应更新主题的副本值。(据我所知,没有办法自动完成) 但是您可以通过使用
kafka-reassign-partitions.sh
工具手动完成
步骤:
- 创建一个json文件来表示分区所需的副本。例如:
- 执行此命令以重新分配分区 ./kafka/bin/kafka-reassign-partitions.sh--zookeeper localhost:2181--reassignment json file my_file.json--execute
{"version":1,
"partitions":[
{"topic":"YourTopic","partition":0,"replicas":[3,2,4]},
{"topic":"YourTopic","partition":1,"replicas":[2,4,3]},
{"topic":"YourTopic","partition":2,"replicas":[4,3,2]}
]}