确定与 debezium 的交易结束

Determining end of transaction with debezium

我想将 Debezium 与 kafka connect 结合使用,但我需要在交易结束时完成这项工作。该事务更新了许多表。我可以获得每条消息的 GTID,但我如何知道我何时收到了该交易的所有消息?在我知道所有内容都已更新之前,我无法开始处理。

Debezium 不指示 tx 现在完成。未来的计划是为事务中的每个更改包含一个序列号,并指出哪条记录是最后一条。然后应该很容易将更改聚合回单个消息。

作为权宜之计,您可以使用 Kafka Streams 会话 windows,其中会话标识符将是事务 ID (GTID)。