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