java - Kafka 生产者/消费者在 kafka 节点故障后重新连接

标签 java spring-boot apache-kafka

我有一些 kafka 消费者和生产者(Spring 启动),当他们连接的 Kafka 节点出现故障(例如失败)时,他们会记录以下内容:

2019-03-15 11:02:53.278 WARN 1 --- [tainer#1-23-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-29, groupId=OperationsConsumer] Error connecting to node kafka-0.kafka-headless.test.svc.cluster.local:9092 (id: 1001 rack: null)

java.io.IOException: Can't resolve address: kafka-0.kafka-headless.test.svc.cluster.local:9092



但是他们不会尝试重新连接到有效的 kafka 节点,即使我明确地将节点设置为 bootstrap.servers属性(property)。

在他们连接的 kafka 节点出现故障后,如何让我的消费者重新连接到有效的 kafka 节点?

最佳答案

检查您的重新连接属性:

  • reconnect.backoff.ms
  • reconnect.backoff.max.ms

  • ...如 Kafka docs 中所述

    在评估重新连接成功之前,您是否让它们过去了?

    bootstrap.servers 中,除了向下的节点之外,至少需要另外一个节点有机会建立新的联系。还请检查您的所有节点是否都通过相同的 Zookeeper 进行通信,并且 Kafka 设置本身是否处于良好状态。

    关于java - Kafka 生产者/消费者在 kafka 节点故障后重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55181337/

    相关文章:

    java - 提取查询参数的正则表达式因日期时间字符串而失败

    java - 服务器空闲后 Hibernate Session 创建异常

    Docker 挂载发生在入口点执行之前或之后

    java - 在docker容器中运行时,HeapDumpOnOutOfMemoryError不转储堆

    apache-kafka - 带有可选记录的 AVRO 模式

    Java伪超链接

    java - 即使使用了 Set,数组中仍存在重复项

    multithreading - 如何自定义SecurityContextPersistenceFilter的行为?

    apache-kafka - Kafka Connect 转换 - RegexRouter 替换小写主题名称

    apache-spark - Spark Streaming HUDI HoodieException : Config conflict(key current value existing value): RecordKey: