Kafka Streams - 重试信息

时间:2018-03-09 04:07:45

标签: apache-kafka-streams

我有一个具有外部依赖关系的Kafka流应用。在依赖项不可用的情况下,我想稍后重新处理消息。我无法控制偏移,因为流在​​内部进行。什么是最好的完成这个?

2 个答案:

答案 0 :(得分:1)

您需要将邮件放入商店,然后将其从商店中取出并重试。

您可以在常规处理期间或通过安排标点符号来重试。

查看文档了解更多详情:https://docs.confluent.io/current/streams/developer-guide/processor-api.html#defining-a-stream-processor

答案 1 :(得分:1)

据我了解Kafka Streams和整个Confluent Platform架构,您不应直接从Kafka Streams应用程序与任何外部资源进行通信。其中一个基本概念是Kafka Steams应用程序输入和输出只是Kafka主题。与其他所有外部资源的通信应由Kafka Connect完成。 Confluent和社区有很多不同的连接器,如果需要你甚至可以write your own implementation

在这种方法中,您不需要自己实现重试。另一件事是Kafka Streams中的消息处理不会被任何长期生存的IO操作阻止,这可能会对流拓扑的其他组件产生负面影响。所有阻塞操作和重试都将在Kafka Connect连接器中完成,该连接器专为此类操作而设计。连接器应具有容错能力并保证交付。

以下是来自Confluent blog的简单图表,其中显示了所描述的方法enter image description here