-
我有一个每天更新一次/两次的表,但我希望在表更新后立即将数据推送到Kafka。是否可以避免每次poll.interval.ms都运行连接器,而只在表更新后运行它(按需同步或在表更新后以其他方式触发同步)
如果这个问题很愚蠢,我道歉。可以sink连接器在一个Kafka集群上运行,但是从另一个Kafka集群拉消息并将它们插入到Postgres中。我不是在谈论从集群A复制消息到集群B,然后从集群B插入消息到Postgres。我说的是在集群B上运行的连接器,但是从集群A中提取消息并将它们写入Postgres。
谢谢!
-
如果您使用基于日志的更改数据捕获(Debezium等),那么您可以在更改出现时立即捕获更改,而无需重新查询数据库。如果使用基于查询的CDC,则必须按轮询间隔查询数据库。关于基于查询的CDC与基于日志的CDC,请参阅此博客或讲座。
一种选择是使用Kafka Connect REST API来控制连接器——但是你在这里有点违背了流范式,并且会开始发现这样做的尴尬之处。例如,何时决定暂停连接器?你如何确定它已经吸收了所有的变化?等。
使用基于日志的CDC对源系统的影响较小,并且通常是人们选择的路径。
-
Kafka Connect不能在Kafka集群上运行。Kafka Connect作为自己的集群运行。从物理上讲,它可以用于开发/沙盒环境(这个研究对生产很有用)。参见"运行Kafka connect"。
在你的例子中,"Cluster "实际上是一个Kafka Connect集群——它将被配置为从Kafka集群中读取数据,这很好。