正如我从文档和其他参考资料中看到的那样,无论通过属性 (tasks.num) 定义的值如何,似乎连接器都将使用单个任务进行实例化
- 这个属性是否
tasks.num
会像在故障转移等情况下产生任何影响......?比如说,如果tasks.num
配置了 2 并且 jdbc 连接器与单个任务一起使用,并且如果该任务失败并且其他任务将接管? - 在这种情况下,分布式模式的意义是什么,有效地,连接器是用单个任务创建的?
正如我从文档和其他参考资料中看到的那样,无论通过属性 (tasks.num) 定义的值如何,似乎连接器都将使用单个任务进行实例化
tasks.num
会像在故障转移等情况下产生任何影响......?比如说,如果tasks.num
配置了 2 并且 jdbc 连接器与单个任务一起使用,并且如果该任务失败并且其他任务将接管?对于链接的源连接器,这是因为它使用单个 Change Stream cursor。您究竟如何期望多个任务不会获得冲突的信息,例如读取相同的数据并将其复制到主题中?
Connect 运行源和接收器。许多来源只支持单个任务,但这取决于它们的内部线程模型;例如,每个集合/表可以有一个任务,但如果只有一个统一的项目,例如更改流或 binlog,那么只能有一个任务。您已经提到了 JDBC,但是如果 CDC 支持您的数据库,那么 Debezium 将是首选。
分发也是为了容错,而不仅仅是可扩展性。只有部分异常是可恢复的,可以在其他节点上重启