首页 > 解决方案 > Kafka 在同一台机器上流式传输应用程序

问题描述

从同一台机器启动两个流应用程序时遇到问题。它与合作再平衡协议有关。出于某种原因,当第二个出现时,第一个崩溃:

[streams-StreamThread-1] INFO org.apache.kafka.streams.processor.internals.StreamThread - stream-thread [streams-stream-1-StreamThread-1] State transition from PENDING_SHUTDOWN to DEAD
[streams-StreamThread-1] INFO org.apache.kafka.streams.KafkaStreams - stream-client [streams-app.id-1] State transition from RUNNING to ERROR
[streams-StreamThread-1] ERROR org.apache.kafka.streams.KafkaStreams - stream-client [streams-1] All stream threads have died. The instance will be in error state and should be closed.
[streams-1] INFO org.apache.kafka.streams.processor.internals.StreamThread - stream-thread [streams-StreamThread-1] Shutdown complete
[streams-StreamThread-1] ERROR app.id - Uncaught exception in Streams thread (streams-StreamThread-1)
java.lang.IllegalStateException: Assignor supporting the COOPERATIVE protocol violates its requirements
    at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.validateCooperativeAssignment(ConsumerCoordinator.java:668)

我曾尝试在两个实例上使用单独state.dir的,但这似乎对我也不起作用。

可以忽略,请参阅第一条评论:此外,我注意到在配置了 CooperativeStickyAssignor 的情况下尝试启动两个消费者时的相同行为。我缺少关于合作再平衡配置的内容吗?

标签: apache-kafkakafka-consumer-apiapache-kafka-streams

解决方案


推荐阅读