在名为kafka connect jdbc connector的开源项目中,我试图了解两个类的关系:jdbcsourceconnector和jdbcsourcetask。
我可以理解为什么task对象建立数据库连接,因为我们可能有一个或多个任务作为线程并行地轮询数据库。我不明白的是,为什么连接器类中有相同的连接逻辑,而如果我们只想使用一个线程,我们就可以使用一个任务来实现这一点?
这与我有关,因为我正在编写修改连接逻辑的分叉版本。我想了解是否应该考虑维护连接器数据库连接,原因是我还没有确定。我已经在修改任务连接逻辑了。
这个选择有设计上的原因吗?
1条答案
按热度按时间bf1o4zei1#
连接器本身偶尔会在数据库中轮询与配置中的黑/白表列表匹配的表列表。如果dba添加了新表,那么连接器将自动检测到这一点,并启动其他任务来复制这些表。