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

Can 2 Debezium Connectors read from same source at the same time?

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

编辑:我已经用 oracle 数据库对其进行了测试,但从未发现它运行良好。绝对不推荐使用它,尤其是在 oracle 中。

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

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

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

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

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