我正在使用Kafka 0.8和zookeeper 3.3.5。实际上,我们有十几个主题,我们可以消费而没有任何问题。
最近,我们开始提供和消费一个新的主题,它表现出奇怪的行为。消费的偏移突然被重置了。它遵循我们设置的自动偏移重置策略(实际上是最小值),但我无法理解为什么该主题突然重置其偏移量。
我正在使用高级别消费者。
以下是我发现的一些错误日志:
我们有一堆这样的错误日志:
[2015-03-26 05:21:17,789] INFO 从代理id:1,host:172.16.23.1,port:9092获取1个主题(MyTopic)的元数据,关联ID为47 (kafka.client.ClientUtils$) [2015-03-26 05:21:17,789] ERROR 生产者连接到172.16.23.1:9092失败(kafka.producer.SyncProducer) java.nio.channels.ClosedByInterruptException at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202) at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:681) at kafka.network.BlockingChannel.connect(BlockingChannel.scala:57) at kafka.producer.SyncProducer.connect(SyncProducer.scala:141) at kafka.producer.SyncProducer.getOrMakeConnection(SyncProducer.scala:156) at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:68) at kafka.producer.SyncProducer.send(SyncProducer.scala:112) at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:53) at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:88) at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:66) at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:51)
每次出现此问题时,我都会看到以下警告日志:
[2015-03-26 05:21:30,596] WARN 由于套接字错误而重新连接:null (kafka.consumer.SimpleConsumer)
然后真正的问题就发生了:
最近,我们开始提供和消费一个新的主题,它表现出奇怪的行为。消费的偏移突然被重置了。它遵循我们设置的自动偏移重置策略(实际上是最小值),但我无法理解为什么该主题突然重置其偏移量。
我正在使用高级别消费者。
以下是我发现的一些错误日志:
我们有一堆这样的错误日志:
[2015-03-26 05:21:17,789] INFO 从代理id:1,host:172.16.23.1,port:9092获取1个主题(MyTopic)的元数据,关联ID为47 (kafka.client.ClientUtils$) [2015-03-26 05:21:17,789] ERROR 生产者连接到172.16.23.1:9092失败(kafka.producer.SyncProducer) java.nio.channels.ClosedByInterruptException at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202) at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:681) at kafka.network.BlockingChannel.connect(BlockingChannel.scala:57) at kafka.producer.SyncProducer.connect(SyncProducer.scala:141) at kafka.producer.SyncProducer.getOrMakeConnection(SyncProducer.scala:156) at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:68) at kafka.producer.SyncProducer.send(SyncProducer.scala:112) at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:53) at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:88) at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:66) at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:51)
每次出现此问题时,我都会看到以下警告日志:
[2015-03-26 05:21:30,596] WARN 由于套接字错误而重新连接:null (kafka.consumer.SimpleConsumer)
然后真正的问题就发生了:
[2015-03-26 05:21:47,551] 信息 已连接到172.16.23.5:9092进行生产 (kafka.producer.SyncProducer) [2015-03-26 05:21:47,552] 信息 与172.16.23.5:9092断开连接 (kafka.producer.SyncProducer) [2015-03-26 05:21:47,553] 信息 [ConsumerFetcherManager-1427047649942] 添加了分区的获取器ArrayBuffer([[MyTopic,0], initOffset 45268422051 to br oker id:5,host:172.16.23.5,port:9092])(kafka.consumer.ConsumerFetcherManager) [2015-03-26 05:21:47,553] 信息 [ConsumerFetcherThread-MyTopic_group-1427047649884-699191d4-0-5], 开始获取 (kafka.consumer.Cons umerFetcherThread) [2015-03-26 05:21:50,388] 错误 [ConsumerFetcherThread-MyTopic_group-1427047649884-699191d4-0-5], [MyTopic,0]当前偏移量45268422051超出范围; 将偏移量重置为1948447612(kafka.consumer.ConsumerFetcherThread) [2015-03-26 05:21:50,490] 错误 [ConsumerFetcherThread-MyTopic_group-1427047649884-699191d4-0-5], [MyTopic,0]当前偏移量1948447612超出范围; 将偏移量重置为1948447612(kafka.consumer.ConsumerFetcherThread) [2015-03-26 05:21:50,591] 错误 [ConsumerFetcherThread-MyTopic_group-1427047649884-699191d4-0-5], [MyTopic,0]当前偏移量1948447612超出范围; 将偏移量重置为1948447612(kafka.consumer.ConsumerFetcherThread) [2015-03-26 05:21:50,692] 错误 [ConsumerFetcherThread-MyTopic_group-1427047649884-699191d4-0-5], [MyTopic,0]当前偏移量1948447612超出范围; 将偏移量重置为1948447612(kafka.consumer.ConsumerFetcherThread)现在问题是: 有谁已经遇到过这种情况吗? 有没有人能告诉我当Kafka决定重置其偏移量时,auto.offset.reset是最大还是最小?
谢谢。