Kafka复制可以部署在不同的机器上吗?

时间:2017-06-16 16:42:56

标签: apache-kafka replication

我正在运行一个项目。我的目标是设计一个Kafka集群。防止当一台机器死机时,卡夫卡上的数据全部消失。我想知道是否可以在不同的机器上设置Kafka复制以备份?

3 个答案:

答案 0 :(得分:4)

除了在主题上设置复制因子2或3以确保最终创建备份副本副本之外,还应发布acks = all的消息,以确保确认表明数据已写入所有数据的保证复制品。否则,在acks = 1之后,只有1个副本被提交后你会得到一个ack,并且acks = 0你根本就没有ack,所以你永远不知道你发布的消息是否曾经进入Kafka提交日志。

还将不干净的领导者选举参数设置为false,以确保只有insync副本才能成为领导者。

答案 1 :(得分:1)

在Kafka中,您可以定义主题的复制因子,这样每个分区都可以在更多代理上复制。其中一个是生产者和消费者连接以交换消息的领导者。另一个是追随者,他们从领导者处获得消息副本以使其同步。如果领导者失败,则在所有同步副本之间开始新的领导者选举。 Kafka将支持N-1失败的经纪人,其中N是复制因子。

答案 2 :(得分:0)

是的,复制因子定义了这个。