是否可以将 return 消息作为 "unread" 消息发送到 Kafka 主题?

Is it possible to return a message to Kafka Topic as "unread" message?

我正在构建一个 Spark Streaming 程序,我希望它读取某些消息,并且 return 如果消息无法被程序处理,它们将作为主题的“未读”。

我的意图是程序最终再次读取消息并尝试处理它。

这可能吗?

没有。如果你想到卡夫卡抵消,那是不可能的。

如果您“return”原始主题的记录,它将附加到主题的末尾,因此在下一次投票时再次使用。

这将导致无限消费循环(直到放回记录的任何条件不再为真)

你问的好像是“dead-letter-queue”,是用不同的主题实现的,不是原来的。至于如何在 Spark 中处理它,您可能必须维护一些 Try 对象(Scala)或其他布尔类型,它知道特定事件是否已成功处理;然后 filter 在写入任何下游系统之前将其输出。

例如,具有此模式的数据框,您在生成之前 filter/drop 第三列

topic - string
value - bytes
hasError - boolean