Apache kafka 卡夫卡流:转发到主题后清除对象

Apache kafka 卡夫卡流:转发到主题后清除对象,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,让我们假设该值是字符串或类对象 context.forward(key, value, topic); 在上述行之后,我们可以立即执行以下操作吗?如果记录在producer缓冲区中,它们是否都会以null的形式发布到topic value = null; 这很好,因为你传递了推荐信。如果value是基元类型(此API不可能),那么也可以复制该值 可能导致问题的是,如果修改传递的对象(但不能使用Stringtype)。假设它是一个POJO类型,在context.forward之后调用set()

让我们假设该值是字符串或类对象

context.forward(key, value, topic);
在上述行之后,我们可以立即执行以下操作吗?如果记录在producer缓冲区中,它们是否都会以null的形式发布到topic

value = null;

这很好,因为你传递了推荐信。如果
value
是基元类型(此API不可能),那么也可以复制该值


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

我相信您正在修改代码中该对象的引用,但不是在缓冲区中,您应该尝试一下