从转换器代码获取连接器名称

问题描述 投票:0回答:1

我正在为 Kafka Connect 编写一个自定义转换器。如何从转换器代码中获取连接器名称?

apache-kafka apache-kafka-connect
1个回答
0
投票

您可以尝试以下几种方法:

  1. 初始化期间传递信息:

    在连接器配置期间,设置自定义属性,例如 converter.context.connector.name=您的连接器名称。检索该属性 在转换器初始化期间。

    示例(配置):

    connector.class=your.connector.class
    key.converter=your.key.converter.class
    value.converter=your.value.converter.class
    key.converter.context.connector.name=your_connector_name
    value.converter.context.connector.name=your_connector_name
    

    在您的转换器中:

    public class YourConverter implements Converter {
        private String connectorName;
    
        @Override
        public void configure(Map<String, ?> configs, boolean isKey) {
            this.connectorName = (String) configs.get("connector.name");
            // Other configuration and initialization code
        }
    
        // Rest of your converter code
    }
    
  2. 使用单例或静态变量: 如果您的转换器始终与特定连接器关联,请使用 用于存储连接器名称的静态或单例变量。

    示例:

    public class YourConverter implements Converter {
        private static String connectorName;
    
        public static void setConnectorName(String name) {
            connectorName = name;
        }
    
        // Rest of your converter code
    }
    

    连接器初始化时设置连接器名称:

    YourConverter.setConnectorName("your_connector_name");
    

您可以随意自定义这些示例,以适合您独特的用例和代码结构。

© www.soinside.com 2019 - 2024. All rights reserved.