Java Apache Kafka Producer元数据更新程序和重试逻辑

HendPro12

我将Spring用于Apache Kafka,并通过Spring的KafkaTemplate创建了一个使用Kafka Producer(org.apache.kafka.clients.producer)的服务,以将消息发送到主题。在目标Kafka群集上,我禁用了自动主题创建。使用此处列出的生产者配置的组合https://kafka.apache.org/documentation/#producerconfigs我成功控制了请求重试的次数,重试之间的时间等。

如果我提供的主题不存在,则请求会在我期望的时间超时(达到max.block.ms的值)时超时但是,在超时之后,我继续以为retry.backoff.ms设置的时间间隔获取日志条目(例如下面的条目),直到达到300000 ms / 5分钟为止

我一直无法确定可以更改生产者或代理上的哪个配置属性,以阻止生产者检查5分钟以查看该主题是否已创建。

有人可以指出我正确的设置,使我可以减少此设置,或者在请求超时后停止检查吗?

日志输入示例

WARN  [kafka-producer-network-thread | producer-1] org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater: [Producer clientId=producer-1] Error while fetching metadata with correlation id 9 : {<specified_topic>=UNKNOWN_TOPIC_OR_PARTITION}

使用的生产者配置:

  • delivery.timeout.ms = 5000
  • linger.ms = 1000
  • max.block.ms = 8000
  • request.timeout.ms = 4000
  • 最大重试次数= 0
  • retry.backoff.ms = 2000
马赞内查

Kafka Producer在first之前检索和缓存主题/分区元数据send然后,它将定期尝试刷新此元数据,每个metadata.max.age.ms(默认值= 5分钟)刷新为“好retry.backoff.ms”主题,每个刷新为“无效”主题。这些元数据刷新尝试就是您在日志中观察到的。

为了防止缓存不受控制地增长,根据这些源注释,在一定时间后会将未使用的主题从缓存中删除当前,此有效期被硬编码ProducerMetadata.java为5分钟。

  public class ProducerMetadata extends Metadata {
      private static final long TOPIC_EXPIRY_NEEDS_UPDATE = -1L;
      static final long TOPIC_EXPIRY_MS = 5 * 60 * 1000;
        ...

通过将生产者日志级别设置为,您实际上可以观察到所有这些活动DEBUG

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apache Kafka:无法更新Metadata / java.nio.channels.ClosedChannelException

来自分类Dev

Apache Kafka Producer配置错误

来自分类Dev

Kafka Java Producer和kerberos

来自分类Dev

在Apache Kafka中保留数据

来自分类Dev

Apache Kafka 和持久订阅

来自分类Dev

Apache Spark Streaming kafka 集成错误 JAVA

来自分类Dev

如何在Maven项目中将依赖项org.apache.kafka.clients.producer.Producer解析为apache kafka的Java生产者

来自分类Dev

引起:java.io.NotSerializableException:org.apache.kafka.clients.producer.KafkaProducer

来自分类Dev

将Apache Java Kafka的Spring Java配置替换为XML

来自分类Dev

Apache Kafka保留所有数据

来自分类Dev

Apache Kafka保留所有数据

来自分类Dev

使用 REST 通过 Apache Kafka 发送数据

来自分类Dev

Apache Kafka和JMS之间的连接

来自分类Dev

分区和流之间的Apache Kafka关系

来自分类Dev

Apache Kafka 和 Confluent Schema Registry

来自分类Dev

Apache Kafka:获取相关ID为0的主题元数据

来自分类Dev

java.lang.NoClassDefFoundError:org / apache / kafka / connect / header / ConnectHeaders

来自分类Dev

火花kafka流式传输错误-“ java.lang.NoClassDefFoundError:org / apache / spark / streaming / kafka / KafkaUtils

来自分类Dev

Apache Flink:IDE 执行中的 Kafka Producer 未按预期工作

来自分类Dev

PostgreSQL逻辑日志流式传输到Apache Kafka

来自分类Dev

Kafka Producer-找不到org.apache.kafka.common.serialization.StringSerializer

来自分类Dev

Kafka Producer导致org.apache.kafka.common.network.InvalidReceiveException:无效的接收

来自分类Dev

Kafka Producer-找不到org.apache.kafka.common.serialization.StringSerializer

来自分类Dev

Apache Kafka主题分区

来自分类Dev

Apache Kafka:镜像与复制

来自分类Dev

关于Apache Kafka的说明

来自分类Dev

Apache Kafka - 分区

来自分类Dev

apache zookeeper kafka 路径

来自分类Dev

如何配置Apache Kafka在指定时间发送数据?

Related 相关文章

  1. 1

    Apache Kafka:无法更新Metadata / java.nio.channels.ClosedChannelException

  2. 2

    Apache Kafka Producer配置错误

  3. 3

    Kafka Java Producer和kerberos

  4. 4

    在Apache Kafka中保留数据

  5. 5

    Apache Kafka 和持久订阅

  6. 6

    Apache Spark Streaming kafka 集成错误 JAVA

  7. 7

    如何在Maven项目中将依赖项org.apache.kafka.clients.producer.Producer解析为apache kafka的Java生产者

  8. 8

    引起:java.io.NotSerializableException:org.apache.kafka.clients.producer.KafkaProducer

  9. 9

    将Apache Java Kafka的Spring Java配置替换为XML

  10. 10

    Apache Kafka保留所有数据

  11. 11

    Apache Kafka保留所有数据

  12. 12

    使用 REST 通过 Apache Kafka 发送数据

  13. 13

    Apache Kafka和JMS之间的连接

  14. 14

    分区和流之间的Apache Kafka关系

  15. 15

    Apache Kafka 和 Confluent Schema Registry

  16. 16

    Apache Kafka:获取相关ID为0的主题元数据

  17. 17

    java.lang.NoClassDefFoundError:org / apache / kafka / connect / header / ConnectHeaders

  18. 18

    火花kafka流式传输错误-“ java.lang.NoClassDefFoundError:org / apache / spark / streaming / kafka / KafkaUtils

  19. 19

    Apache Flink:IDE 执行中的 Kafka Producer 未按预期工作

  20. 20

    PostgreSQL逻辑日志流式传输到Apache Kafka

  21. 21

    Kafka Producer-找不到org.apache.kafka.common.serialization.StringSerializer

  22. 22

    Kafka Producer导致org.apache.kafka.common.network.InvalidReceiveException:无效的接收

  23. 23

    Kafka Producer-找不到org.apache.kafka.common.serialization.StringSerializer

  24. 24

    Apache Kafka主题分区

  25. 25

    Apache Kafka:镜像与复制

  26. 26

    关于Apache Kafka的说明

  27. 27

    Apache Kafka - 分区

  28. 28

    apache zookeeper kafka 路径

  29. 29

    如何配置Apache Kafka在指定时间发送数据?

热门标签

归档