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

时间:2018-10-01 15:55:06

标签: apache-kafka apache-kafka-streams

我们假设该值为字符串或类对象。

context.forward(key, value, topic);

在上一行之后,我们可以立即执行以下操作吗?如果记录在生产者缓冲区中,它们是否都将以null的形式发布到主题?

value = null;

1 个答案:

答案 0 :(得分:1)

很好,因为您传递了引用。如果value是原始类型(此API不可能),则可以复制该值。

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