Apache kafka 对于Kafka,长消息处理和水平缩放的正确配置是什么
我的应用程序使用的消息的平均处理持续时间为5-15分钟,其中1条消息的最大轮询记录数为:1 当没有消息时,有一个pod(K8S),对于每个传入的消息,我将扩展pod,增加一个pod,最多50个。(我有50个分区) 现在我有几个问题:Apache kafka 对于Kafka,长消息处理和水平缩放的正确配置是什么,apache-kafka,spring-kafka,hpa,Apache Kafka,Spring Kafka,Hpa,我的应用程序使用的消息的平均处理持续时间为5-15分钟,其中1条消息的最大轮询记录数为:1 当没有消息时,有一个pod(K8S),对于每个传入的消息,我将扩展pod,增加一个pod,最多50个。(我有50个分区) 现在我有几个问题: 当一个新的pod升起时,我需要花费很多时间才能看到分配的分区。我可以看到播客可以在几分钟后开始和结束,甚至在他们收到一条消息之前 我可以看到,当很多消息插入到主题中(超过10条(对于这个应用程序来说,这是很多))时,它开始获得commitException,因此在不
java.lang.IllegalStateException: This error handler cannot process 'org.apache.kafka.clients.consumer.CommitFailedException's; no record information is available
at org.springframework.kafka.listener.SeekUtils.seekOrRecover(SeekUtils.java:151) ~[spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.SeekToCurrentErrorHandler.handle(SeekToCurrentErrorHandler.java:113) ~[spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.handleConsumerException(KafkaMessageListenerContainer.java:1361) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:1063) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_252]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_252]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_252]
Caused by: org.apache.kafka.clients.consumer.CommitFailedException: Offset commit cannot be completed since the consumer is not part of an active group for auto partition assignment; it is likely that the consumer was kicked out of the group.
at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.sendOffsetCommitRequest(ConsumerCoordinator.java:1109) ~[kafka-clients-2.5.0.jar!/:na]
at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.commitOffsetsSync(ConsumerCoordinator.java:976) ~[kafka-clients-2.5.0.jar!/:na]
at org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1511) ~[kafka-clients-2.5.0.jar!/:na]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doCommitSync(KafkaMessageListenerContainer.java:2311) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.commitSync(KafkaMessageListenerContainer.java:2306) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.commitIfNecessary(KafkaMessageListenerContainer.java:2292) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.processCommits(KafkaMessageListenerContainer.java:2106) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.pollAndInvoke(KafkaMessageListenerContainer.java:1097) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:1031) [spring-kafka-2.5.6.RELEASE.jar!/:2.5.6.RELEASE]
... 3 common frames omitted
我的卡夫卡配置是:
spring.kafka:
bootstrap-servers: {{ .Values.kafka.service }}:9092
consumer:
client-id: XXX
group-id: YYY
auto-offset-reset: earliest
enable-auto-commit: false
fetch-min-size: 1
fetch-max-wait: 1
properties:
heartbeat.interval.ms: 3000
max.poll.interval.ms: 1200000
max.poll.records: 1
producer:
client-id: XXX