【问题标题】:Can 2 Debezium Connectors read from same source at the same time?2 个 Debezium 连接器可以同时从同一个源读取吗?
【发布时间】:2022-01-26 22:08:35
【问题描述】:

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

【问题讨论】:

  • 是的,您可以运行多个 Debezium 源连接器来捕获来自同一源数据库的更改,但我们通常不建议这样做,除非绝对必要。某些配置值需要对每个连接器都是唯一的,这样每个连接器就不会彼此共享状态。您使用的是哪个连接器?
  • 我正在使用 oracle 连接器。您的评论实际上回答了我的问题,如果您将其写为答案,我可以接受。 @Naros

标签: apache-kafka debezium


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2023-02-26
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 2012-07-18
    • 2016-11-24
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多