在标准的Kafka Connect JDBCConnector中,为什么对象JDBCSourceConnector和JDBCSourceTask都进行数据库连接?

时间:2016-08-24 22:29:11

标签: apache-kafka apache-kafka-connect

在名为Kafka Connect JDBC Connector的开源项目中,有两个类我试图理解JDBCSourceConnectorJDBCSourceTask之间的关系。

我可以理解为什么任务对象建立数据库连接,因为我们可能有一个或多个任务作为线程并行轮询数据库。我不明白为什么在Connector类中有相同的连接逻辑,如果我们只想使用一个线程,我们可以使用任务来做到这一点?

这与我有关,因为我正在编写一个修改连接逻辑的分叉版本。我想了解是否应该考虑维护Connector数据库连接由于某些我还没有确定的原因。我已经修改了Task连接逻辑。

这个选择是否有设计原因?

1 个答案:

答案 0 :(得分:4)

连接器本身偶尔会在数据库中查询与配置中的黑/白表列表匹配的表列表。如果DBA添加了新表,则Connector将自动检测该表并启动其他任务以复制这些表。