2022-01-03 Flink Standalone 集群启动源码剖析

高并发Flink RPC架构设计

Flink RPC基于Akka实现。它是异步、高性能、非阻塞事件驱动网络编程框架模型。
Java BIO NIO Netty
Scala Actor Akka

  1. ActorSystem是管理Actor生命周期的组件,重量。Actor是负责通信的组件,轻量。
  2. 每个Actor都有一个MailBox,用于接收存储其他Actor发过来的邮件,通过这种方式实现异步。
  3. 每个Actor单线程,轮询MailBox。Actor不适合调用会阻塞的方法。
  4. Actor可以改变自身的状态,可以接收消息,可以发送消息,可以生成新的Actor。
  5. 每个ActorSystem和Actor在启动时都会给定一个名字。获取一个Actor可以通过如下方式:akka.tcp://actorsystem_name@bigdata02:9527/user/actorname user固定搭配
  6. 如果一个Actor与另一个Actor进行通信,首先获得对方的ActorRef对象,然后通过ActorRef进行通信。
  7. 通过tell发送异步信息,不接收响应。通过ask发送异步信息,得到Future返回。通过异步回到返回处理结果。


    image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容