apache-kafka - Kafka - 如果分区丢失如何恢复?

标签 apache-kafka

我在一个集群中有 4 个 Kafka 节点,一个主题拆分为 40 个分区,副本数为 2。Kafka 版本为 2.3.1。

两个Kafka节点同时挂掉,无法重新启动,Kafka日志丢失,如何恢复?

我确信我丢失了一些数据,因为一些分区丢失了(一些分区只在死节点上有副本)。

我尝试添加两个新的 Kafka 节点并将分区重新分配给所有 4 个可用的 Kafka 节点。最后,丢失的分区不会重新分配给两个新的 Kafka 节点。客户端无法发布丢失分区的数据。

最佳答案

Kafka 会自行恢复丢失的分区,前提是这些分区仍然至少有一个先前同步的事件副本。否则,必须在代理上启用 unclean.leader.election 才能将领导者移动到不同步的副本

由于分区只有 2 个副本,而您丢失了 2 个节点,因此您可能会丢失一些分区。

您可以用 4 个副本替换 2 个副本以提高可靠性

添加的两个节点应该与之前的节点具有相同的 id,以便能够拉取副本。

关于apache-kafka - Kafka - 如果分区丢失如何恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59579312/

相关文章:

apache-kafka - Spring Kafka 获得分配的分区

jms - Kafka 生产者不在 Windows 中工作

apache-spark - 如何为 Spark 结构化流应用程序获取 kafka 消费者延迟

spring-integration-kafka 配置消费者从指定分区接收消息

performance - kafka客户端可以扮演消费者和生产者的多重角色吗

apache-kafka - 使用幂等 Kafka Producer 时的排序保证

apache-spark - 使用python在spark 2.3.0中流式传输Spark Kafka

java - Kafka - 偏移量提交和查找

apache-kafka - Kafka Connect 反序列化字节数组

hadoop - FlumeData 文件未在 HDFS 接收器中创建