【问题标题】:Possible Kafka streaming without CDC?可能没有 CDC 的 Kafka 流式传输?
【发布时间】:2019-06-23 14:16:47
【问题描述】:

我正在做一个工作项目。我很好奇是否可以在没有 CDC 的数据库上实现 Kafka。 (CDC 并不是一直打开的) 在网上找不到任何讨论其他选项的资源。是否可以将数据直接输入kafka?比如写C#代码来读取数据库,然后插入作为连接器的Kafka?

【问题讨论】:

    标签: database apache-kafka apache-kafka-connect cdc


    【解决方案1】:

    看看这个,它解释了一切:-)

    https://www.confluent.io/kafka-summit-ny19/no-more-silos-integrating-db-into-apache-kafka

    tl;dr:你可以写一些代码,但问题是真的应该你写一些代码:) 几乎肯定不会。您可以使用“适当的”CDC 从事务日志中获取事件,或者您可以使用带有 JDBC 源连接器的“基于查询的 CDC”来轮询新记录。在上面的谈话中讨论了每种方法的优缺点。

    【讨论】:

      【解决方案2】:

      可以,但不应该。将 CDC 视为另一个软件,当然,您可以编写类似的软件。您需要处理许多棘手的事情:

      • 您应该从数据库日志中读取数据(MySQL 中的 binlog,MongoDB 中的 oplog ......)所以您必须了解您要导出的每个数据库供应商的日志格式。
      • 维护持久数据。假设您向 Kafka 写入一个事务中的数据列表。当你写在中间步骤并且发生了错误时会发生什么?您必须重试。否则,您系统的另一部分从 Kafka 读取数据将看到部分数据。 ...

      这背后有很多原因,这是唯一的理论上的解决方案。这是一个great blog 来自一个在分布式数据库方面非常有经验的人,他讨论了将自定义 CDC 写入 Postgres 或任何一般的数据库供应商。

      【讨论】:

        猜你喜欢
        • 2021-07-09
        • 2016-06-21
        • 1970-01-01
        • 2015-12-12
        • 2018-02-13
        • 2019-05-19
        • 1970-01-01
        • 2021-12-19
        • 2018-03-28
        相关资源
        最近更新 更多