gpt4 book ai didi

apache-kafka - kafka 连接失败时的 kafka-streams 警报

转载 作者:行者123 更新时间:2023-12-03 23:44:44 28 4
gpt4 key购买 nike

当 kafka-streams 应用程序正在运行并且 Kafka 突然关闭时,应用程序进入“等待”模式,发送警告日志的消费者和生产者线程无法连接,当 Kafka 回来时,一切都应该(理论上)去恢复正常。
我正在尝试就这种情况发出警报,但我无法找到捕捉并发送日志/指标的地方。
我尝试了以下方法:

  • streams.setUncaughtExceptionHandler但这只发生在异常(exception)情况下,这里不是
  • 延长 ProductionExceptionHandler并更改 default.production.exception.handler属性到我的类,它扩展了这个接口(interface)。再次,与 setUncaughtExceptionHandler 一样这里没有抛出异常,所以什么都没有发生。

  • 我知道 Kafka 有自己的指标,我可以听这些指标并找出代理是否已关闭。但在某些情况下,Kafka 代理很好,而我的 kafka-streams 应用程序无法连接(即身份验证配置错误或 vpn/vpc 问题)
    我能做些什么来捕捉这些问题并记录它们/报告它们?
    更新
    如果 kafka 不可用,请参阅消费者/生产者日志:
    2020-08-24 21:41:32,055 [my-kafka-streams-app-23a462fe-28c6-415a-a08a-b11d3ffffc2e-StreamThread-1] WARN  o.apache.kafka.clients.NetworkClient - [] [Consumer clientId=my-kafka-streams-app-23a462fe-28c6-415a-a08a-b11d3ffffc2e-StreamThread-1-consumer, groupId=my-kafka-streams-app] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
    2020-08-24 21:41:32,186 [kafka-admin-client-thread | my-kafka-streams-app-23a462fe-28c6-415a-a08a-b11d3ffffc2e-admin] WARN o.apache.kafka.clients.NetworkClient - [] [AdminClient clientId=my-kafka-streams-app-23a462fe-28c6-415a-a08a-b11d3ffffc2e-admin] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
    2020-08-24 21:41:32,250 [kafka-producer-network-thread | my-kafka-streams-app-23a462fe-28c6-415a-a08a-b11d3ffffc2e-StreamThread-1-producer] WARN o.apache.kafka.clients.NetworkClient - [] [Producer clientId=my-kafka-streams-app-23a462fe-28c6-415a-a08a-b11d3ffffc2e-StreamThread-1-producer] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.

    最佳答案

    这种情况不容易以编程方式检测。问题是,客户端并没有真正将他们的状态暴露给 Kafka Streams,因此 Kafka Streams 并不真正了解断开连接。有KIP建议加一个DISCONNECT状态,但实现起来并不容易(参见 https://cwiki.apache.org/confluence/display/KAFKA/KIP-457%3A+Add+DISCONNECTED+status+to+Kafka+Streams )。
    您提到的异常处理程序对这种情况没有帮助,因为没有抛出异常(至少不在 Kafka Streams 代码库中)。
    您可以尝试监控消费者延迟或一些 Kafka Streams 指标(如处理速率)。他们可能会提供足够好的代理。引用 https://docs.confluent.io/current/streams/monitoring.html

    关于apache-kafka - kafka 连接失败时的 kafka-streams 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63550494/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com