我一直在查看我正在开发的 Java 应用程序的大量 Kafka 文档。我已经尝试过使用 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、生产者和消费者运行都连接到同一个主题,所以我希望基本上看到String
所有实例(生产者、消费者和流)上都出现相同的内容。