编程语言
首页 > 编程语言> > java – 调试自定义Kafka连接器的简单有效方法是什么?

java – 调试自定义Kafka连接器的简单有效方法是什么?

作者:互联网

我正在使用几个Kafka连接器,我在控制台输出中没有看到它们的创建/部署中的任何错误,但是我没有得到我正在寻找的结果(没有任何结果,无论如何,期望或除此以外).我根据Kafka的示例FileStream连接器制作了这些连接器,因此我的调试技术基于使用示例中使用的SLF4J Logger.我已经搜索了我认为会在控制台输出中生成的日志消息,但无济于事.我在错误的地方找这些消息吗?或者是否有更好的方法来调试这些连接器?

我为实现引用的SLF4J Logger的示例用法:

Kafka FileStreamSinkTask

Kafka FileStreamSourceTask

解决方法:

我将尝试以广泛的方式回答您的问题.一个简单的连接器开发方法如下:

>通过查看公开提供的众多Kafka连接器之一来构建和构建连接器源代码(您可以在此处找到详细列表:https://www.confluent.io/product/connectors/)
>从https://www.confluent.io/download/下载最新的Confluent Open Source版本(> = 3.3.0)
>通过以下方式之一将您的连接器包提供给Kafka Connect:

>将所有连接器jar文件(连接器jar和依赖jar,不包括Connect API jar)存储到文件系统中的某个位置,并通过将此位置添加到文件系统中来启用插件隔离
Connect工作者属性中的plugin.path属性.例如,如果连接器jar存储在/ opt / connectors / my-first-connector中,则将在worker的属性中设置plugin.path = / opt / connectors(参见下文).
>将所有连接器jar文件存储在${CONFLUENT_HOME} / share / java下的文件夹中.例如:${CONFLUENT_HOME} / share / java / kafka-connect-my-first-connector. (需要从启动脚本获取kafka-connect-前缀开始). $CONFLUENT_HOME是您安装Confluent Platform的地方.

>(可选)通过将${CONFLUENT_HOME} /etc/kafka/connect-log4j.properties中的Connect的日志级别更改为DEBUG甚至TRACE来增加日志记录.
>使用Confluent CLI启动所有服务,包括Kafka Connect.详情:http://docs.confluent.io/current/connect/quickstart.html

简而言之:汇合开始

Note: The Connect worker’s properties file currently loaded by the CLI is ${CONFLUENT_HOME}/etc/schema-registry/connect-avro-distributed.properties. That’s the file you should edit if you choose to enable classloading isolation but also if you need to change your Connect worker’s properties.

>运行Connect worker后,运行以下命令启动连接器:

汇合负载< connector_name> -d< connector_config.properties>

要么

汇合负载< connector_name> -d< connector_config.json>

连接器配置可以是java属性或JSON格式.
>跑
汇合日志连接以打开Connect工作人员的日志文件,或通过运行直接导航到存储日志和数据的位置

cd“$(汇合当前)”

Note: change where your logs and data are stored during a session of the Confluent CLI by setting the environment variable CONFLUENT_CURRENT appropriately. E.g. given that /opt/confluent exists and is where you want to store your data, run:

export CONFLUENT_CURRENT=/opt/confluent
confluent current

>最后,要以交互方式调试连接器,可能的方法是在开始使用Confluent CLI连接之前应用以下内容:

汇合停止连接
export CONNECT_DEBUG = y; export DEBUG_SUSPEND_FLAG = y;
汇合开始连接

然后连接调试器(例如远程连接到Connect工作器(默认端口:5005).要在调试模式下停止运行connect,只需运行:unset CONNECT_DEBUG;取消设置DEBUG_SUSPEND_FLAG;完成后.

我希望上面的内容能让您的连接器开发更轻松……更有趣!

标签:java,debugging,slf4j,apache-kafka,apache-kafka-connect
来源: https://codeday.me/bug/20190713/1453075.html