当代理重新启动时,Kafka 生产者会丢失排队的消息

当代理重新启动时,Kafka 生产者会丢失排队的消息

我在这个问题上没有太多经验,也许做错了什么。

当我停止 Kafka 代理并在暂停后再次启动它时,就会出现问题。代理启动几秒钟后,我的生产者发出错误:“主题不存在”。由于此错误,所有离线缓冲消息都会丢失。不久后,错误消失,并生成连续消息。

如果我将“auto.create.topics.enable”服务器属性更改为“true”,则代理重启后仍会继续出现“主题不存在”错误,但缓冲消息会按预期生成。

我认为,如果允许自动创建主题,则“主题不存在”错误将被视为暂时的,生产者将重复发送消息,直到错误消失。否则不会进行重复,缓冲的消息将丢失。

我可以做些什么来使用“auto.create.topics.enable”= false 并且不丢失消息吗?

在 WSL2 Ubuntu 22.04.1 上运行 kafka_2.13-3.4.0,并在 Windows 10 上使用带有 librdkafka v2.1.1 的 C++ 客户端。设置如下:delivery.timeout.ms=86400000、retries=2147483647、acks=all。主题的创建复制因子为 1,分区为 1。

相关内容