【问题标题】:How can I get the task details (ID and Connector) within Kafka Connect Runtime如何在 Kafka Connect Runtime 中获取任务详细信息(ID 和连接器)
【发布时间】:2020-04-02 03:59:05
【问题描述】:

我正在尝试创建自定义连接器,并且我想在任务运行时记录任务详细信息(连接器和任务 ID)。在任务启动和轮询方法中,我想记录任务编号和连接器名称。有什么方法可以获取提供任务详细信息(连接器和任务 ID)的程序运行时上下文。

请注意,连接器可能有多个并行运行的任务(tasks.max 配置),因此我想将特定消息与创建它的特定任务相关联。

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    已将映射诊断上下文 (MDC) 日志记录添加到 Apache Kafka 2.3 中,您可以通过设置记录此信息:

    log4j.appender.stdout.layout.ConversionPattern=[%d] %p %X{connector.context}%m (%c:%L)%n
    

    这会给你这样的日志:

    INFO [sink-elastic-orders-00|task-0] Using multi thread/connection supporting pooling connection manager (io.searchbox.client.JestClientFactory:223)
    INFO [sink-elastic-orders-00|task-0] Using default GSON instance (io.searchbox.client.JestClientFactory:69)
    

    参考:https://www.confluent.io/blog/kafka-connect-improvements-in-apache-kafka-2-3

    【讨论】:

    • 谢谢,这对日志方面很有帮助。但是是否可以使用一些 java API 在正在运行的连接器中获取这些信息。
    • @GrizzledDevArch 这有点麻烦,但您可以从 Log4J 诊断上下文中获取值:String connectorContext = MDC.get("connector.context");
    【解决方案2】:

    给定的Connector 有一个context 字段,但是我没有在 API 中看到如何获取有关正在运行的任务的元数据的详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多