【发布时间】:2018-09-15 19:46:37
【问题描述】:
鉴于以下情况:
我在本地启动 zookeeper 和单个 kafka 代理,并按照 kafka 快速入门中所述创建“测试”主题:https://kafka.apache.org/quickstart
然后,我运行一个简单的 java 程序,它每秒向“test”主题生成一条消息。一段时间后,我关闭了本地 kafka 代理并看到生产者继续生成消息,它没有抛出任何异常。最后,我再次启动了 kafka 代理,生产者能够重新连接到代理并继续生成消息,但是,在 kafka 代理停机期间生成的所有这些消息都丢失了。当检测到健康的 kafka 代理时,生产者不会重播它们。
如何防止这种情况发生?我希望 kafka 生产者在检测到 kafka 代理重新联机时重播这些消息。这是我的生产者配置:
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("linger.ms", 0);
props.put("key.serializer", StringSerializer.class.getName());
props.put("value.serializer", StringSerializer.class.getName());
【问题讨论】:
标签: java apache-kafka kafka-producer-api