如何配置Kafka以使消费者和生产者在禁用复制时从故障中恢复?

时间:2016-10-28 21:56:44

标签: apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-connect

我们有一个可以接受数据丢失的用例(认为可接受30-50%的损失)。为了降低成本,我们想知道是否可以将Kafka配置为复制因子为1,这样消费者和生产者就可以通过简单地消费和生成可用分区来从代理故障中恢复。

如果可以,需要设置哪些配置?

其他经纪人技术本身就是这样做的,但是,我们希望避免引入另一种技术,因为kafka已经是我们生态系统的一部分。

1 个答案:

答案 0 :(得分:2)

如果您通过bin/kafka-topics.sh创建新主题,则需要指定参数--replication-factor;只需将其设置为1即可禁用复制。

对于现有主题,您可以使用参数bin/kafka/topics.sh使用--alter更改复制因子。

对于生产者和消费者,您可能需要进行一些额外的异常处理。例如,如果您在编写记录时指定了专用分区并且无法访问代理,则可能需要考虑这一点(可能只是跳过此写操作或任何适当的编写)。但是,您无需为客户设置特定配置。