apache-kafka - 长时间运行的 Kafka 流突然因 IllegalArgumentException 而死
问题描述
我有一个 Kafka 流应用程序,它已经运行并处理了几个小时的记录。在某些时候,所有线程都因以下消息而死。
Exception in thread "MY_STREAM-29fd50b1-1478-4a82-8014-a42a1eabeb28-StreamThread-7" java.lang.IllegalArgumentException: Assigned partition MY_TOPIC_1-KSTREAM-FLATMAP-0000000015-repartition-24 for non-subscribed topic regex pattern; subscription pattern is MY_TOPIC_1|MY_TOPIC_2|MY_TOPIC_1_V1-KSTREAM-FLATMAP-0000000023-repartition|MY_TOPIC_1_V1-KSTREAM-MAP-0000000024-repartition
at org.apache.kafka.clients.consumer.internals.SubscriptionState.assignFromSubscribed(SubscriptionState.java:187)
at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.onJoinComplete(ConsumerCoordinator.java:220)
at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.joinGroupIfNeeded(AbstractCoordinator.java:367)
at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureActiveGroup(AbstractCoordinator.java:316)
at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:290)
at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1149)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1115)
at org.apache.kafka.streams.processor.internals.StreamThread.pollRequests(StreamThread.java:827)
at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:784)
at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:750)
at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:720)
这个异常似乎与任何消息处理都无关,因为我们的异常处理程序没有被调用。重新启动应用程序服务器“修复”了问题;流正在运行并再次处理记录。是什么导致了这个问题?我怎样才能防止这种情况在未来发生?
解决方案
推荐阅读
- sql - 关于一些代码来查找不在表格中的所有内容的逻辑?
- javascript - SurveyJS:在 React 中禁用自动感谢消息
- leaflet - Drupal 8 - 传单模块
- powershell - 使用 Powershell 从 Avaya 导出数据
- javascript - 那么如何显示用户选择的PDF,如何从html保存到PDF
- batch-file - 我看不到最后一个 ECHO 语句有什么原因吗?
- string - 如何使用pyspark中的pandas_udf拆分数据框中的字符串
- java - 使用 Hibernate JPQL 将日期格式化为 ISO 8601
- python-3.x - 子进程不会启动其他 py 脚本
- android - Android发布者API取消订阅后无法恢复订阅