【发布时间】:2025-12-02 07:20:04
【问题描述】:
我有一些耗时的 Spring Cloud Stream 应用程序的 CommitFailedException。我知道要解决此问题,我需要设置 max.poll.records 和 max.poll.interval.ms 以符合我对处理批处理所需时间的期望。但是,我不太确定如何在 Spring Cloud Stream 中为消费者设置它。
例外:
org.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than the configured max.poll.interval.ms, which typically implies that the poll loop is spending too much time message processing. You can address this either by increasing the session timeout or by reducing the maximum size of batches returned in poll() with max.poll.records. at
org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.sendOffsetCommitRequest(ConsumerCoordinator.java:808) at
org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.commitOffsetsSync(ConsumerCoordinator.java:691) at
org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1416) at
org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1377) at
org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.commitIfNecessary(KafkaMessageListenerContainer.java:1554) at
org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.processCommits(KafkaMessageListenerContainer.java:1418) at
org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.pollAndInvoke(KafkaMessageListenerContainer.java:739) at
org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:700) at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
java.lang.Thread.run(Thread.java:748)
此外,我怎样才能确保这种情况根本不会发生?或者,在这种异常的情况下,我如何注入某种回滚?原因是我正在做一些其他的外部工作,一旦完成,我就会相应地发布输出消息。因此,如果在外部系统上完成工作后由于任何问题无法发布消息,我必须将其还原(通过 Kafka 发布和其他外部系统进行某种原子事务)。
【问题讨论】:
标签: apache-kafka spring-kafka spring-cloud-stream