作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定:带有 KStream::transform
的 DSL 拓扑.作为 Transformer::transform
的一部分执行多条消息从输入( KeyValue<String, Message>
)生成。
我大概可以返回 KeyValue<String, List<Message>>
来自 Transformer::transform
的对象并申请 flatMapValues
作为拓扑中的下一个处理器来扁平化列表。但是我想知道是否可以使用 ProcessorContext::forward
为了同一个目标,即
public KeyValue<String, Message> transform(String key, Message message) {
Iterable<Message> messages = generateMultipleFromOne(message);
messages.forEach(m->context.forward(key, m));
return null;
}
最佳答案
来自 javadoc of Transformer.transform(K key, V value) :
If more than one output record should be forwarded downstream,
ProcessorContext.forward(Object, Object)
andProcessorContext.forward(Object, Object, To)
can be used.Note that returning a new KeyValue is merely for convenience. The same can be achieved by using
ProcessorContext.forward(Object, Object)
and returning null.
关于java - 如何从 Transformer 输出多条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54260925/
我是一名优秀的程序员,十分优秀!