2 个 Debezium 连接器可以同时从同一源读取数据吗?

Bün*_*ürk 4 apache-kafka debezium

正如标题所示,我有 2 个独立的服务器,我希望两个连接器从同一源读取数据以写入各自的主题。单个连接器效果很好。当我在另一台服务器中创建另一个服务器时,它们似乎正在运行,但两者都没有发生数据流。我的问题是,是否可以运行 2 个从同一源读取数据的 Debezium 连接器?我在文档中找不到有关此主题的任何信息。

编辑:我用 oracle 数据库测试过它,但从未见过它运行良好。绝对不建议使用它,尤其是在 oracle 中。

Nar*_*ros 8

因此,一般来说,Debezium 不建议您为每个数据库源使用多个连接器,而是建议您调整连接器配置。我们知道,当您有不同的业务用例时,情况并非总是如此。

也就是说,重要的是,如果您确实部署了多个连接器,请正确配置每个连接器,以便它不会共享状态,例如相同的数据库历史记录主题等。

对于某些数据库平台,拥有多个源连接器实际上不会给数据库带来任何真正的负担,例如MySQL。但其他数据库(例如 Oracle)运行多个连接器可能会产生相当大的影响。

当 Oracle 连接器流式传输更改时,它会启动 Oracle LogMIner 挖掘会话。此会话负责加载、读取、解析和准备连接器用来生成更改事件的特殊内存表中读取的数据内容。当您运行多个连接器时,您将发生并发的 Oracle LogMiner 会话,并且每个会话将消耗自己的 PGA 内存份额来支持 Oracle LogMiner 采取的步骤。根据数据库的波动性,这可能会给数据库服务器带来压力,因为 Oracle 专门将一个 LogMiner 会话分配给一个 CPU。

对于 Oracle 环境,我强烈建议您避免使用多个连接器,除非您需要从同一实例中的不同 PDB 流式传输更改,因为实际上没有技术原因说明您应该读取、加载、解析和生成更改数据多次相同的重做条目,每个连接器部署一次。