我在一个主题中有多个事件,并且我尝试按照以下步骤进行处理:
我能够使用transformValues访问标头,但不确定执行toStream时如何注入新标头值。
streamsBuilder.stream("my-topic")
.transformValues(new Transformer())//access headers here n filter few events
.groupByKey(Serialized.with(Serdes.String(),null)
.aggregate(()->my avro object initialization,(key,value,aggregate)->newValue(Value,aggregate),Materialized.as("my-store").withKeySerde(Serdes.String()).withValueSerde(Serdes.ByteArray())
.mapValues((key,value)->convert to bytes).toStream()
注意:我是KStream的新手。
答案 0 :(得分:1)
您可以使用Processor API添加自定义标题。以与访问标头相同的方式实施过程方法。
new Processor() {
......
@override
public void process(String key, String value) {
// add a header to the elements
context().headers().add.("key", "key");
}
...
}