根据Kafka Stream API中的键获取所有对象

时间:2019-07-16 08:07:34

标签: java apache-kafka stream apache-kafka-streams

我想在Kafka Stream API中获取针对Map Key中的键列出的所有对象,然后将其存储到Kafka Store中,然后根据键来获取它。

案例1:在这种情况下,我将获得针对某个键可用的对象总数。

return topicStream.map((k,v)-> {                            // transform they key as Online/Offline based on status
                String online =  v.isOnline() == true ? "Online" : "Offline";   
                return new KeyValue<>(online, v);
            })
            .groupByKey(Serialized.with(            //Group by the newly mapped key in previous step
                      Serdes.String(), 
                      new JsonSerde<>(VehicleLocation.class))     
                  )
            .count(Materialized.as("statusCount"))  // materialize this value to state store
            .toStream();

要从商店获取,我正在使用:

ReadOnlyKeyValueStore<String, Long> keyValueStore= kStreamBuilderFactoryBean.getKafkaStreams()
                                                        .store("statusCount", QueryableStoreTypes.keyValueStore());
        return keyValueStore.get(status);   //get the count for the key viz. Offline/Online

问题:现在,我想获取所有的VehicleLocation对象并返回它,以便可以将其公开为休息服务响应。 1.为此,我想将Key用作“ Available”并存储VehicleLocation对象和 2.然后将其写入“可用”卡夫卡商店 3.然后通过传递“可用”键从kafka商店中读取。

0 个答案:

没有答案