分布式計算模式: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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/544268.html
標籤:其他
下一篇:02-python簡介
