Kafka JDBC Source Connector 在哪里存储最后读取的 DB 行?

问题描述 投票:0回答:1

我试图在实现方面弄清楚 Kafka Connect JDBC 源连接器如何跟踪它读取和发布的最后一个数据库行。我找到了这个页面,第二段详细介绍了what他们做了什么,但没有how他们做了它:https://docs.confluent.io/kafka-connectors/jdbc/current/source-connector /overview.html#features

Kafka Connect 跟踪它从每个表中检索到的最新记录,因此它可以在下一次迭代(或发生崩溃)时从正确的位置开始。源连接器使用此功能在每次迭代时仅从表(或自定义查询的输出)中获取更新的行。支持多种模式,每种模式在检测修改行的方式上有所不同。

我一直在研究这段代码,但还没弄明白: https://github.com/confluentinc/kafka-connect-jdbc/tree/master/src/main/java/io/confluent/connect/jdbc/source

我猜他们将最后发布的行存储在 DB/KV 存储中?或者也许有一种方法可以将元数据添加到他们正在发布的 Kafka 主题,然后在下一个时间间隔可以从那里轮询它?

apache-kafka apache-kafka-connect
1个回答
0
投票

弄清楚了,他们发布到一个单独的主题以跟踪他们随后在连接器重置时使用的数据库偏移量。此部分的更多详细信息: https://www.confluent.io/blog/kafka-connect-deep-dive-jdbc-source-connector/#resetting

与此相关的源代码似乎在这里:https://github.com/a0x8o/kafka/blob/master/connect/runtime/src/main/java/org/apache/kafka/connect/storage /KafkaOffsetBackingStore.java

© www.soinside.com 2019 - 2024. All rights reserved.