【问题标题】:What should be the kafka serde configuration when we use kafka streams当我们使用 kafka 流时,kafka serde 配置应该是什么
【发布时间】:2020-10-16 12:49:28
【问题描述】:

我们正在使用 JDBC 源连接器将数据从表同步到 Kafka 中的主题(称为主题 1)。我们知道这仅捕获插入和更新,我们添加了一个触发器来捕获删除。此触发器捕获已删除的记录并写入一个新表,该表同步到另一个 Kafka 主题(称为此主题 2)。

我们已将 JDBC 源连接器配置为使用 AvroConverter。

现在我们已经编写了一个 Kafka 流逻辑,它使用来自该主题 2 的数据并发布到主题 1。我的问题是 Kafka 流逻辑的序列化器和反序列化器配置应该是什么? KafkaAvroSerializer和KafkaAvroDeserializer可以用吗?

我正在查看 AvroConverter 代码 (https://github.com/confluentinc/schema-registry/blob/master/avro-converter/src/main/java/io/confluent/connect/avro/AvroConverter.java),看看我是否能得到一些想法。我浏览 Github 代码已经有一段时间了。我无法断定使用 KafkaAvoSerializer 和 KafkaAvroDeserializer 在 Kafka 流逻辑中是否正确。有人可以帮帮我吗?

【问题讨论】:

    标签: apache-kafka apache-kafka-streams


    【解决方案1】:

    为什么您的 JDBC 连接器只捕获插入和更新?

    已编辑:我们使用 Confluent JDBC source connector SQL Server Debezium Connector,即使在删除时也表现良好。具体关注query modes

    也许尝试切换到此连接器,您最终可能会解决一个问题,只有一个包含所有相关事件的流。

    【讨论】:

    • 请阅读此内容。 confluent.io/blog/…。你会发现这句话——The JDBC Connector cannot fetch deleted rows。因为,你如何查询不存在的数据?
    • 谢谢。现在我明白了,我正确链接了,但我不小心切换了 JDBC 和 SQL Server 连接器。
    • 我编辑了答案以真正代表我的意思。很抱歉提供欺骗性的答案,感谢您的指正。
    • 没问题 Zajo。 Debezium 连接器涉及 Oracle/SQL Server 的许可成本。所以,我们已经排除了这个选项。
    猜你喜欢
    • 2018-02-12
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多