我正在为 Kafka Connect 编写一个自定义转换器。如何从转换器代码中获取连接器名称?
您可以尝试以下几种方法:
初始化期间传递信息:
在连接器配置期间,设置自定义属性,例如 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
}
使用单例或静态变量: 如果您的转换器始终与特定连接器关联,请使用 用于存储连接器名称的静态或单例变量。
示例:
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");
您可以随意自定义这些示例,以适合您独特的用例和代码结构。