【发布时间】:2017-01-12 15:55:35
【问题描述】:
我一直在查看大量 Kafka 文档以了解我正在开发的 Java 应用程序。我已经尝试过使用 Java 8 中引入的 lambda 语法,但我在这方面有点粗略,并且对它应该是我目前使用的不太有信心。
我有一个 Kafka/Zookeeper 服务运行没有任何问题,我想做的是编写一个基于输入的小示例程序将其写出来,但不做字数统计,因为有这么多的例子已经。
至于示例数据,我将得到以下结构的字符串:
示例数据
This a sample string containing some keywords such as GPS, GEO and maybe a little bit of ACC.
问题
我希望能够提取 3 个字母的关键字并使用 System.out.println 打印它们。如何获取包含输入的字符串变量?我知道如何应用正则表达式,甚至只是通过字符串搜索来获取关键字。
代码
public static void main(String[] args) {
Properties props = new Properties();
props.put(StreamsConfig.APPLICATION_ID_CONFIG, "app_id");
props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "0:0:0:0:0:0:0:1:9092");
props.put(StreamsConfig.ZOOKEEPER_CONNECT_CONFIG, "0:0:0:0:0:0:0:1:2181");
props.put(StreamsConfig.KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());
props.put(StreamsConfig.VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());
final Serde<String> stringSerde = Serdes.String();
KStreamBuilder builder = new KStreamBuilder();
KStream<String, String> source = builder.stream(stringSerde, stringSerde, "in-stream");
KafkaStreams streams = new KafkaStreams(builder, props);
streams.start();
//How do I assign the input from in-stream to the following variable?
String variable = ?
}
我的 zookeeper、kafka、producer 和 consumer 都运行在同一个主题上,所以我希望基本上看到相同的 String 出现在所有实例(producer、consumer 和 stream)上。
【问题讨论】:
标签: java stream apache-kafka apache-kafka-streams