如何检查事件后是否发生了特定事件,并且apache kafka

时间:2018-06-18 06:21:47

标签: apache-kafka apache-kafka-streams

我有一个场景需要监控用户的活动。当用户离线时,我得到一个值userOnline:0,当他回来时,我得到userOnline:1。 如果用户离线超过5分钟,则管理员用户需要收到有关此消息的通知。所以我的Kstream是:

StreamsBuilder streamsBuilder = new StreamsBuilder();
KStream<String, GenericRecord> user_activities = streamsBuilder.stream("user_activities");

我知道KTable可以应用窗口,我正在尝试在流上应用5分钟的窗口。

KTable<Windowed<String>, Long> aggregateItem =
                user_activities
                    .groupByKey()
                    .windowedBy(TimeWindows.of(TimeUnit.MINUTES.toMillis(5)))
                    .count();

从上面的示例中我得到了用户活动的“计数”。但是如何提取用户在离线(userOnline:1)5分钟后是否没有在线(userOnline:0)回来?

0 个答案:

没有答案