Kafka集群失败处理说明

时间:2018-11-02 17:45:56

标签: apache-kafka bigdata

我想设置一个Apache kafka集群,以便在新项目中使用它。不幸的是,我找不到有关kafka处理代理失败和网络分区的详细解释。 例如,如果我有一个由2个或更多代理组成的集群,并且1个节点发生故障,那么只有一个节点继续接收消息吗? 如果是,当第二个再次出现时,它如何重新同步丢失的数据?

1 个答案:

答案 0 :(得分:1)

看看herehere,了解Kafka使用的复制协议。 Kafka主题中的每个分区都有一个“领导者”,并将消息发送给领导者。消息被复制到“跟随者”。

所以要具体回答您的问题,我的理解是:

  

如果我有一个由2个或更多代理组成的集群,并且1个节点失败,那么只有一个节点继续接收消息吗?

无论如何,只有一个节点接受消息;领导者节点。如果关注者失败,则领导者继续接受消息。 如果领导者失败,则从最新的关注者中选出新的领导者。

  

如果是,当第二个再次出现时,它如何重新同步丢失的数据?

“跟随者”充当“领导者”的消费者,因此一旦被跟随的追随者将继续使用来自领导者的消息以重新同步。