卡夫卡流中的延迟函数

时间:2017-12-08 17:39:01

标签: apache-kafka apache-kafka-streams

正在尝试使用kafka流代码,并希望在拆分数据后添加延迟或类似threads.sleep()1ms ......我很困惑如何做到这一点......有人帮助我做这个?

KStreamBuilder builder = new KStreamBuilder();
KStream<String, String> textlines = builder.stream("INTOPIC");
KStream<String, String> mstream = textlines
    .mapValues(value -> value.replace("[",""));
    .mapValues(value -> value.replace("]",""));
    .mapValues(value -> value.replaceAll("\\},\\{" ,"\\}\\},\\{\\{"))
    .flatMapValues(value -> Arrays.asList(value.split("\\},\\{")));
mstream.to("OUTTOPIC");
KafkaStreams streams = new KafkaStreams(builder, config);
streams.start();

所以在.flatmapvalues语句之后我需要添加一个thread.sleep()1ms,那么我的声明是什么呢?

1 个答案:

答案 0 :(得分:0)

不确定要实现的目标,但似乎您希望减慢处理速度?你可以把睡眠放入你的使用代码中。为此,lambda表达式必须在返回实际结果之前调用“sleep”。作为替代方案,您还可以添加额外的.foreach()peek()来电并在那里睡觉。