Kafka Streams:转发到主题后清除对象

Kafka Streams: Clearing objects after forward to topic

我们假设该值是一个字符串或一个 class 对象。

context.forward(key, value, topic);

在上面一行之后,我们可以做下面的事情吗?如果记录在生产者缓冲区中,它们是否都会作为 null 发布到主题?

value = null;

没关系,因为你传递了参考资料。如果 value 是基本类型(这 API 不可能),值将被复制也很好。

可能会导致问题的是,如果您 修改 传递的对象(尽管无法使用 String 类型)。假设,它是一个 POJO 类型,并且您在 context.forward 之后调用了一个 set() —— 因为下游节点可能仍然使用传入的引用,调用 set() 将修改之前转发的 POJO。这可能会导致问题。