我有一个名为 test 的数据库,上面有多个 Kafka Debezium 连接器。 每个连接器都与一张表相关联。
我的问题是关于内存使用情况,这是一个更好的方法:
我认为这实际上取决于您的用例。我认为没有适用于所有用例的通用方法。 例如,在我当前的工作中,我们决定使用 4 个连接器来流式传输来自同一数据库的更改,但是每个连接器都从表的子集流式传输。主要原因是我们不希望出现单点故障,即数据库内的错误记录可能会破坏我们依赖 CDC 的所有用例,因此,我们划分了表并将它们分配给连接器。请注意,数据库上也有很多复制槽并不好。所以这实际上取决于您的用例。
考虑到所有性能因素,始终建议使用单个源连接器(多个实例来共享负载),每个数据库实例(test1、test2、test3 等)具有复制器或配置文件,具有多个表,因此数据入口将是 1 个表 -> 1 个主题。
您可以更好地了解 Oracle Golden Gate 实现模式。
https://rmoff.net/2018/12/12/streaming-data-from-oracle-into-kafka/