壁钟标点器在InvalidStateStoreException重新平衡时失败

时间:2019-07-02 09:45:55

标签: apache-kafka

我们的kafka-streams应用程序中有一个墙上时钟标点符号,每隔几秒钟就会检查一次商店。 我们注意到,几乎每次重新平衡时,我们都会遇到一个异常org.apache.kafka.streams.errors.InvalidStateStoreException: Store xxxx is currently closed

我们试图在代码中引入一些睡眠,因为我们认为这可能是时间问题,但这没有帮助。

在代码的另一部分中,我们可以看到xxxx存储的恢复已完成并且可以查询。

唯一的问题似乎在于标点符号。

org.apache.kafka.streams.errors.StreamsException: task [1_0] Exception caught while punctuating processor 'KSTREAM-TRANSFORM-0000000090'
    at org.apache.kafka.streams.processor.internals.StreamTask.punctuate(StreamTask.java:430)
    at org.apache.kafka.streams.processor.internals.PunctuationQueue.mayPunctuate(PunctuationQueue.java:54)
    at org.apache.kafka.streams.processor.internals.StreamTask.maybePunctuateSystemTime(StreamTask.java:845)
    at org.apache.kafka.streams.processor.internals.AssignedStreamsTasks.punctuate(AssignedStreamsTasks.java:232)
    at org.apache.kafka.streams.processor.internals.TaskManager.punctuate(TaskManager.java:427)
    at org.apache.kafka.streams.processor.internals.StreamThread.maybePunctuate(StreamThread.java:1031)
    at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:911)
    at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:805)
    at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:774)
Caused by: org.apache.kafka.streams.errors.InvalidStateStoreException: Store xxxx is currently closed
    at org.apache.kafka.streams.state.internals.RocksDBStore.validateStoreOpen(RocksDBStore.java:223)
    at org.apache.kafka.streams.state.internals.RocksDBStore.all(RocksDBStore.java:297)
    at org.apache.kafka.streams.state.internals.ChangeLoggingKeyValueBytesStore.all(ChangeLoggingKeyValueBytesStore.java:104)
    at org.apache.kafka.streams.state.internals.MeteredKeyValueStore.all(MeteredKeyValueStore.java:211)
    at org.apache.kafka.streams.processor.internals.ProcessorContextImpl$KeyValueStoreReadWriteDecorator.all(ProcessorContextImpl.java:435)
    at com.simplybusiness.full_contact.storage.ContactRequestScheduleStorage$ContactRequestScheduleStorageEnrichments$ContactRequestScheduleStorageEnrichments.foreach(ContactRequestScheduleStorage.scala:62)
    at com.simplybusiness.full_contact.processors.ContactRequestDelayerPunctuator.punctuate(ContactRequestScheduler.scala:117)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.punctuate(ProcessorNode.java:123)
    at org.apache.kafka.streams.processor.internals.StreamTask.punctuate(StreamTask.java:426)
    ... 8 common frames omitted

我不确定问题出在我们的代码还是kafka-streams库。 似乎标点符号正在保留对可能已移至其他线程/任务的商店的引用。

我们正在使用kafka-streams 2.2.0版本。

0 个答案:

没有答案