什么是ProcessFunction
ProcessFunction
是一个低层次的流处理操作,允许返回所有(无环的)流程序的基础构建模块:
- 事件(event)(流元素)
- 状态(state)(容错性,一致性,仅在keyed stream中)
- 定时器(timers)(event time和processing time, 仅在keyed stream中)
ProcessFunction
可以认为是能够访问到keyed state和timers的FlatMapFunction
,输入流中接收到的每个事件都会调用它来处理。
对于容错性状态,ProcessFunction可以通过RuntimeContext来访问Flink的keyed state,方法与其他状态性函数访问keyed state一样。
定时器允许应用程序对processing time
和event time
的变化做出反应,每次对processElement(...)
的调用都会得到一个Context
对象,该对象允许访问元素事件时间的时间戳和TimeServer
。TimeServer
可以用来为尚未发生的event-time或者processing-time注册回调,当定时器的时间到达时,onTimer(…)方法会被调用。在这个调用期
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/143283.html