Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 对于Kafka,长消息处理和水平缩放的正确配置是什么_Apache Kafka_Spring Kafka_Hpa - Fatal编程技术网

Apache kafka 对于Kafka,长消息处理和水平缩放的正确配置是什么

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,因此在不

我的应用程序使用的消息的平均处理持续时间为5-15分钟,其中1条消息的最大轮询记录数为:1

当没有消息时,有一个pod(K8S),对于每个传入的消息,我将扩展pod,增加一个pod,最多50个。(我有50个分区)

现在我有几个问题:

  • 当一个新的pod升起时,我需要花费很多时间才能看到分配的分区。我可以看到播客可以在几分钟后开始和结束,甚至在他们收到一条消息之前
  • 我可以看到,当很多消息插入到主题中(超过10条(对于这个应用程序来说,这是很多))时,它开始获得commitException,因此在不同的pod上两次使用相同的消息
  • 错误:

    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