《高级》Flink实时监控用户session轨迹触发推荐
背景 这几天看到Flink学习群问了一个问题,就是他们想实时监控用户session行为轨迹,如果当前session下用户点击了A事件,1小时内用户没有点击B事件,实时流输出C事件 拿电商页面举例子 Flink相关知识点 1:flink状态,由于按session聚合,需要使用keyby+process函数 2:通过flink的KeyedProcessFunction内部实现状态管理 3:然后运用KeyedProcessFunction中的定时触发器onTimer,实时定时判断 注意点: TimerService 在内部维护两种类型的定时器(处理时间和事件时间定时器)并排队 执行。TimerService 会删除每个键和时间戳重复的定时器,即每个键在每个时间戳 上最多有一个定时器。如果为同一时间戳注册了多个定时器,则只会调用一次 onTimer()方法。 废话不多说,直接上代码 kafka代码: import java.util.Properties import kafka.producer.{KeyedMessage, Producer, ProducerConfig} import scala.io.Source object kafkaProduct { def test1() = { val brokers_list = "localhost:9092" val topic