我将 Debezium 放在容器中,捕获 PostgeSQL 数据库记录的所有更改。另外还有一个 Kafka 容器来存储主题消息。最后,我有了一个 JDBC 容器来将所有更改写入另一个数据库。
这三个容器按预期工作,在特定表上执行数据库中旧数据的快照,并在反射(reflect)到目标数据库时流式传输新更改。
我发现在此流式传输期间,PostgreSQL WAL 不断增加,为了克服这种情况,我在源连接器上启用了以下属性来清除所有检索到的日志。
"heartbeat.interval.ms": 1000
现在,随着检索到的内容更改为刷新,PostgreSQL WAL 文件在每次心跳中都会被清除。但与此同时,即使更改被提交到辅助数据库中,kafka 主题仍保持准确的大小。
是否有任何方法或属性可以强制 kafka 删除已提交的消息?
最佳答案
消费者无法控制主题保留。
您可以直接编辑主题配置以减少保留时间,但您的消费者必须在该时间内读取数据。
关于jdbc - Debezium/JDBC 和 Kafka 主题保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74686768/