Samza 0.14.1无法正确处理OffsetOutOfRangeException异常吗?

时间:2018-08-23 18:04:02

标签: java apache-kafka apache-samza

我们正面临与此thread中所述的相同问题。

此处-Samza请求的Kafka分区偏移量过旧(即Kafka日志已向前移动)。我们正在设置属性 editor.data.set("<p>Testing</p>"); consumer.auto.offset.reset,因此希望Samza在这种情况下将其检查点重置为最早可用的分区偏移量。但这并没有发生,我们一直在不断收到这种形式的例外情况:

smallest

版本详细信息

  • Samza:2.11-0.14.1
  • Kafka客户:1.1.0
  • Kafka服务器:1.1.0 Scala 2.11

浏览代码,看来INFO [2018-08-21 19:26:20,924] [U:669,F:454,T:1,123,M:2,658] kafka.producer.SyncProducer:[Logging_class:info:66] - [main] - Disconnecting from vrni-platform-release:9092 INFO [2018-08-21 19:26:20,924] [U:669,F:454,T:1,123,M:2,658] system.kafka.GetOffset:[Logging_class:info:63] - [main] - Validating offset 56443499 for topic and partition Topic3-0 WARN [2018-08-21 19:26:20,925] [U:669,F:454,T:1,123,M:2,658] system.kafka.KafkaSystemConsumer:[Logging_class:warn:74] - [main] - While refreshing brokers for Topic3-0: org.apache.kafka.common.errors.OffsetOutOfRangeException: The requested offset is not within the range of offsets maintained by the server.. Retrying 应该能够捕获异常GetOffset::isValidOffset并将其转换为错误值。但是看来这没有发生。 OffsetOutOfRangeException中的package是否不匹配? GetOffSet类正在赶上 例外Exception,但从日志来看,此类的程序包似乎有所不同。这可能是原因吗?

import kafka.common.OffsetOutOfRangeException

另外,它似乎是BrokerProxy类-def isValidOffset(consumer: DefaultFetchSimpleConsumer, topicAndPartition: TopicAndPartition, offset: String) = { info("Validating offset %s for topic and partition %s" format (offset, topicAndPartition)) try { val messages = consumer.defaultFetch((topicAndPartition, offset.toLong)) if (messages.hasError) { KafkaUtil.maybeThrowException(messages.error(topicAndPartition.topic, topicAndPartition.partition).exception()) } info("Able to successfully read from offset %s for topic and partition %s. Using it to instantiate consumer." format (offset, topicAndPartition)) true } catch { case e: OffsetOutOfRangeException => false } } 的调用者将在获得错误值的情况下打印日志GetOffset,但不会记录此行(指示在"It appears that..."方法中生成的某些异常未捕获并向上传播):

GetOffset

这可能是由于我们正在使用的Kafka客户端库版本不匹配吗? 是否有建议的Samf 0.14.1推荐使用的Kafka客户端版本(假设Kafka服务器为1.x)?

任何对此的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

以上是samza 0.14.0和0.14.1中的错误。 SAMZA-1822是错误ID。

在samza mailing list中也对此进行了讨论。