[ https://issues.apache.org/jira/browse/KAFKA-7326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias J. Sax reassigned KAFKA-7326: -------------------------------------- Assignee: huxihx > Let KStream.print() to flush on each printed line > ------------------------------------------------- > > Key: KAFKA-7326 > URL: https://issues.apache.org/jira/browse/KAFKA-7326 > Project: Kafka > Issue Type: Improvement > Components: streams > Affects Versions: 2.0.0 > Reporter: Guozhang Wang > Assignee: huxihx > Priority: Major > Labels: newbie++ > > Today, {{KStream.print()}} is implemented as a special "foreach" function as > below: > {code} > @Override > public void apply(final K key, final V value) { > final String data = String.format("[%s]: %s", label, > mapper.apply(key, value)); > printWriter.println(data); > } > {code} > Note that since {{this.printWriter = new PrintWriter(new > OutputStreamWriter(outputStream, StandardCharsets.UTF_8));}}, without > flushing the writer we do not guarantee that printed lines are written to the > underlying `outputStream` in time. > Since {{KStream.print()}} is mainly for debugging / testing / demoing > purposes, not for performance, I think it is okay to enforce auto flushing. > This would include: > 1. set {{autoFlush}} in the constructor of printWriter. > 2. document in java-docs of {{KStream.print}} that this is for debug / > testing purposes only, and it will try to flush on each record print, and > hence should not be used for production usage if performance requirement is > key. -- This message was sent by Atlassian JIRA (v7.6.3#76005)