运行 按需而不是基于 poll.interval.ms 的源连接器

Running Source Connector on Demand and Not Based on poll.interval.ms

  1. 我有一个table,每天更新一次/两次,但是我希望在table更新后立即将数据推送到Kafka。是否有可能避免 运行 每隔 poll.interval.ms 连接一次连接器,而是仅在 table 更新后才 运行 连接器(按需同步或触发同步table 更新之后)

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

谢谢!

  1. 如果您使用基于日志的更改数据捕获(Debezium 等),那么您可以在更改出现时立即捕获更改,而无需重新查询数据库。如果您使用基于查询的 CDC,那么您必须在轮询间隔内查询数据库。对于基于查询与基于日志的 CDC,请参阅此 blog or talk

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

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

  2. Kafka Connect 不在您的 Kafka 集群上 运行。 Kafka Connect 运行s 作为自己的集群。在物理上,为了 dev/sandbox 环境(这个 ref arch is useful for production). See also this talk "Running Kafka Connect".

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