当前位置: 首页 > 知识库问答 >
问题:

在Kafka坠毁后,补偿就会消失

夏侯俊美
2023-03-14

我们的kafka系统崩溃了,因为没有可用的磁盘空间。消费者是使用Kafka Streams API的Spring Boot应用程序。现在每个使用者应用程序都显示以下错误:

java.io.FileNotFoundException: /tmp/kafka-streams/908a79bc-92e7-4f9c-a63a-5030cf4d3555/streams.device-identification-parser/0_48/.checkpoint.tmp (No such file or directory)

此异常恰好发生在kafka服务器重新启动之后。如果我们重新启动应用程序,服务将在偏移量0处启动,以重播来自已消费主题的所有消息。这是致命的。

TOPIC                               PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                                                                                                            HOST            CLIENT-ID
device-identification.received      0          -               0               -               streams.device-identification-parser-3e81ef05-b9e3-495c-85b3-7e2912f00578-StreamThread-1-consumer-ca723291-3258-46c0-8b23-233bdc1e1191 /XX.X.X.X       streams.device-identification-parser-3e81ef05-b9e3-495c-85b3-7e2912f00578-StreamThread-1-consumer

共有1个答案

司寇经亘
2023-03-14

如果这是一个Kafka Streams应用程序,您可以成功地重置它,这可以使用Confluent的应用程序重置工具:https://docs.confluent.io/current/Streams/developer-guide/app-reset-tool.html来完成

 类似资料:
  • 我正在使用Kafka 0.8 最近,我们开始喂食和消耗一个行为怪异的新主题,消耗的偏移量突然被重置,它尊重我们设置的auto.offset.reset策略(实际上是最小的)但我无法理解为什么该主题会突然重置其偏移量。 我正在使用高级消费者。 这是我发现的一些错误日志: 我们有一堆这样的错误日志: 每次出现此问题时,我都会看到警告日志: 然后真正的问题发生了: 现在的问题是:有人已经经历过这种行为吗

  • 编辑——我发现,在我的proc文件中,我的冒号和代码之间有一个空格,Heroku无法读取这个空格,它是work now=)。 我的应用程序在开发过程中运行良好,但在heroku推动后崩溃。 我的控制台日志返回给我: at=error code=H10 desc=“App crash”method=GET path=“/favicon.ico”host=sailate-wildwood-76797。

  • 我设置了MirrorMaker2,用于在两个DC之间复制数据。 我的 mm2 属性, 看到下面的MM2创业。 我的数据正在按预期进行复制。源主题作为源在目标集群中创建..但是,消费者群体补偿并没有被复制。 已在源群集中启动使用者组。 消耗了少量消息并将其停止。在此主题中发布了新消息,镜像制造商也将数据镜像到目标集群。 我尝试使用来自目标集群的消息,如下所示。 由于我使用相同的使用者组,因此我希望我

  • 我在一个线程中创建了一个Kafka consumer实例,作为构造函数的一部分,在thread inside run方法中,我确实调用了不同的web服务,为了保持调用的非阻塞性,我正在使用completable future。我的问题是,我无法通过调用thenApply方法并传递Kafka consumer实例来发出commit,因为这会给我一个错误,即Kafka consumer不是线程安全的。

  • 我有一个Kafka消费者。好像工作了一段时间,然后就死了。它重复这样做。我得到了这个异常,但没有其他信息。 305000毫秒是5分钟。有什么线索可能导致这种情况吗?或者尝试找出答案的步骤? 如果相关: 我在不同的机器上有3个进程,使用最新的JavaKafka客户端版本0.10.2.0。每台机器运行20个线程,每个线程都有一个单独的消费者。根据设计,当一个线程死亡时,所有线程都被杀死,进程死亡,然后

  • 我想要的 我在寻找在Activiti上下文达到等待状态之前回滚它的方法。例如,我有: 真是个问题: 我不想手动删除执行变量。我已经试过普通交易-没有结果。现在我想到了补偿事件。 问题: 补偿事件是回滚Activiti上下文还是应该在适当的CompensationserviceTask中手动执行?