假设值是字符串或类对象。
context.forward(key, value, topic);
在上面这一行之后,我们能做以下的事情吗?如果记录在producer缓冲区中,它们是否都会以null的形式发布到topic?
value = null;
kmbjn2e31#
很好,因为你在传递推荐信。如果 value 将是基元类型(此api不可能),值将被复制也可以。可能导致问题的原因是,如果修改传递的对象(不可能使用 String 尽管如此)。假设它是pojo类型,然后你调用 set() 之后 context.forward --因为下游节点可能仍然使用传入的引用,所以调用 set() 将修改先前转发的pojo。这可能会导致问题。
value
String
set()
context.forward
1条答案
按热度按时间kmbjn2e31#
很好,因为你在传递推荐信。如果
value
将是基元类型(此api不可能),值将被复制也可以。可能导致问题的原因是,如果修改传递的对象(不可能使用
String
尽管如此)。假设它是pojo类型,然后你调用set()
之后context.forward
--因为下游节点可能仍然使用传入的引用,所以调用set()
将修改先前转发的pojo。这可能会导致问题。