按需运行 Source Connector,而不是基于 poll.interval.ms

问题描述 投票:0回答:1
  1. 我有一个每天更新一次/两次的表,但我希望在表更新后立即将数据推送到Kafka。 是否可以避免每次 poll.interval.ms 运行连接器,而是仅在表更新后运行连接器(按需同步或在表更新后以其他方式触发同步)

  2. 如果这个问题很愚蠢,我深表歉意……接收器连接器可以在一个 Kafka 集群上运行,但从另一个 Kafka 集群中提取消息并将其插入 Postgres 中吗? 我不是在谈论将消息从集群 A 复制到集群 B,然后将消息从集群 B 插入到 Postgres。 我说的是在集群 B 上运行的连接器,但从集群 A 中提取消息并将它们写入 Postgres。

谢谢!

apache-kafka apache-kafka-connect confluent-platform
1个回答
0
投票
  1. 如果您使用基于日志的更改数据捕获(Debezium 等),那么您可以在更改出现时立即捕获它们,而无需重新查询数据库。如果您使用基于查询的 CDC,那么您必须按轮询间隔查询数据库。对于基于查询和基于日志的 CDC,请参阅此博客

    一种选择是使用 Kafka Connect REST API 来控制连接器 - 但您在这里有点违背流范例,并且会开始发现这样做的尴尬边缘。例如,您何时决定暂停连接器?您如何确定它已吸收所有更改?等等

    使用基于日志的 CDC 对源系统影响很小,也是人们通常采用的路线。

  2. Kafka Connect 不在您的 Kafka 集群上运行。 Kafka Connect 作为自己的集群运行。从物理上讲,它可以出于开发/沙盒环境的目的而位于同一位置(这个ref arch对于生产很有用)。

    因此,在您的示例中,“集群 B”实际上是一个 Kafka Connect 集群 - 它将配置为从 Kafka 集群“A”读取,这很好。

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