我对日志保留和Kafka Streams减少操作有疑问...
我具有以下流配置...
builder.
.stream("topic1", Comsumed.with(Serdes.string(), Serdes.string()))
.groupByKey(Serialized.with(Serdes.string(), Serdes.string()))
.reduce((val1, val2) -> val2, Materialzed.as("store1"))
我知道墓碑事件没有达到reduce函数,所以我必须使用特殊的对象来表示删除,但是如果日志保留删除了一条消息,它将如何工作,如何将其传输到MaterializedView?
答案 0 :(得分:1)
如果您以流形式阅读主题,并且日志保留将主题截断,则您将无法获得有关此信息的通知。
个人说明:我认为您正在做的是反模式。而您遇到的问题就是对此的一个指示。
从主题获取“删除”事件的唯一方法是,如果您使用压缩的主题并将其读取为KTable
。删除仅通过KTable
会接收并对其进行相应处理的墓碑发生。