还原过程中的全局状态存储将转储来自源主题的数据(这被视为全局存储的更改日志主题)。
要删除记录,我会执行以下操作
kvStore.put("key-1",null)
Kafka如何知道该记录已被删除,并且在还原期间它将从源主题转储记录(考虑源主题的key-1记录)
在我的拓扑中
示例:
{"id":'123', "name":"Mohit", "type":"insert"}
123
和值:{"id":'123', "name":"Mohit"}
该键记录之后,在数据中键入delete。
T1获得了数据:{"id":'123', "name":"Mohit", "type":"insert"}
所以我像这样向前记录
this.context.forward(key, null)
key: 123 value:null
相同状态已在状态存储区中更新
我只想知道在恢复此记录时将被删除,这意味着如果我使用密钥123
上架存储,我将得到null。
答案 0 :(得分:1)
状态存储更改日志是紧凑主题。要从紧凑主题中删除邮件,您需要执行put(key, null)
操作。值为null
的消息称为墓碑,它最终会被主题清除器删除。
请注意,该消息只会(最终)在状态存储中删除,而不会在输入主题中删除。
最后,应将密钥为123
的记录从状态存储中完全删除。