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

你可能感兴趣的:(2022-01-03 Flink Standalone 集群启动源码剖析)