[
https://issues.apache.org/jira/browse/KAFKA-7326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthias J. Sax updated KAFKA-7326:
-----------------------------------
Affects Version/s: 2.0.0
> 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
> 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)