《分佈式技術原理與算法解析》學習筆記Day15

分佈式計算模式:Actor

什麼是Actor模型?

分佈式環境下,多個進程協同完成一件複雜的事情,每個進程各司其職,完成自己的工作後,再交給其他進程去完成剩餘的工作。

Actor模型,代表一種分佈式並行計算模型,它有自己的一套規則,規定了Actor的內部計算邏輯以及多個Actor之間的通信規則,每個Actor都相當於系統中的一個組件,是基本的計算單元。

Actor類似於一個“黑盒”對象,它封裝了自己的狀態和行爲,是其他Actor無法直接觀察到它的狀態,調用它的行爲,多個Actor之間通過消息進行通信。

Actor模式採用異步模式,並且每個Actor封裝了自己的數據、方法等,解決了死鎖、競爭等問題。

Actor模型的三個要素:

  • 狀態,Actor組件本身的信息。
  • 行爲,Actor的計算處理操作。
  • 消息,Actor的消息以郵件形式在多個Actor之間通信傳遞,每個Actor會有一個自己的郵箱(MailBox),用於接收來自其他Actor的消息。

Actor模型的特點:

  • 實現了更高級的抽象。
  • 非阻塞性,當一個Actor發送消息給另外一個Actor後,無需等待響應,發送完消息之後可以在本地繼續執行其他任務。
  • 無需使用鎖,Actor從MailBox中一次只能讀取一條消息,Actor內部只能同時處理一個消息,這是一個天然的互斥鎖。
  • 併發度高,每個Actor只需處理本地MailBox的消息。
  • 易擴展,每個Actor都可以創建多個Actor,從而減輕單個Actor的工作負載。

Actor模型存在一些不足之處:

  • Actor提供了模塊和封裝,但缺少繼承和分層。
  • Actor可以動態創建多個Actor,使得整個Actor模型的行爲不斷變化。
  • Actor模型不適用於對消息處理順序由嚴格要求的系統。

可以支持Actor變成模型的典型框架或者語言:

  • Erlang/OTP
  • Akka
  • Quasar
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章