我知道可以使用Kafka Connect将更新从数据库推送到Kafka流。我的问题是,我可以创建一个使用者来将来自同一流的更改写回表中而不创建无限循环吗?
我假设如果我创建一个将更新写入数据库表的消费者,它会触发 Connect 将该更新推送到流等。有没有办法解决这个问题,以便我可以将数据库表镜像到流?
您可以使用用于 Kafka Connect 的 JDBC Sink 连接器从 Kafka 主题流式传输到数据库。
您需要在业务逻辑中编码,以避免无限复制到连接器或使用者中。例如:
- JDBC 源连接器使用
WHERE
子句仅拉取设置了标志以指示它们是原始记录的记录 - 源连接器中的自定义单消息转换,以删除设置了标志以指示它们不是原始记录的记录
- 流应用程序(例如 KSQL/Kafka Streams(处理所有数据库更改的入站流,以仅过滤掉那些设置了标志以指示它们是原始记录的更改
- 效率低下,因为这样您仍然从数据库流式传输所有内容
是的。可以配置同步/复制。