我一直在查阅 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.
问题
我想要提取三个字母的关键词并用 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
。