开发者社区> 问答> 正文

MailboxProcessor、Mailbox、Mail这些概念什么意思,什么作用?

在阅读1.10有关job执行过程相关源码时遇到一些疑问,我在看到Task#doRun()方法 invokable.invoke();具体执行过程应该在这个方法里吧? 进一步看了StreamTask#invoke()->runMailboxLoop();继续往下深入也没发现最终调用udf的入口 问题1:MailboxProcessor、Mailbox、Mail这些概念什么意思,什么作用?

然而在另一处实例化AbstractInvokable时,比如StreamTask构造函数里会调用processInput方法,这个就类似1.9之前的实现方式了 this.mailboxProcessor = new MailboxProcessor(this::processInput, mailbox, actionExecutor); 问题2:这里面是真正的数据处理过程吗?为什么不像1.9之前那样在invokable.invoke()里面做业务处理? 感谢您的答复!*来自志愿者整理的FLINK邮件归档

展开
收起
玛丽莲梦嘉 2021-12-03 18:22:53 1266 0
1 条回答
写回答
取消 提交回答
  • invokable 一般是 StreamTask 或者它的子类 StreamSourceTask,具体的 UDF 在 StreamTask 里,有几层包装。

    MailBox 那些其实是一个简单的 EventLoop 实现,或者你理解为 Actor Model 的实现也行,可以参考这些名词的解释文章一一对应。*来自志愿者整理的FLINK邮件归档

    2021-12-03 18:51:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载