在名为Kafka Connect JDBC Connector的开源项目中,有两个类我试图理解JDBCSourceConnector和JDBCSourceTask之间的关系。
我可以理解为什么任务对象建立数据库连接,因为我们可能有一个或多个任务作为线程并行轮询数据库。我不明白为什么在Connector类中有相同的连接逻辑,如果我们只想使用一个线程,我们可以使用任务来做到这一点?
这与我有关,因为我正在编写一个修改连接逻辑的分叉版本。我想了解是否应该考虑维护Connector数据库连接由于某些我还没有确定的原因。我已经修改了Task连接逻辑。
这个选择是否有设计原因?
答案 0 :(得分:4)
连接器本身偶尔会在数据库中查询与配置中的黑/白表列表匹配的表列表。如果DBA添加了新表,则Connector将自动检测该表并启动其他任务以复制这些表。