天天看點

【轉載】actor 模型的優缺點分析介紹

      actor 模型是 1973 年就提出的一個分布式并發程式設計模型,在 erlang 語言中得到廣泛支援和應用。目前 java中 也出現了很多支援 actor模型的庫:akka、killim、jetlang等等,其中 akka 是使用 scala 寫的,有 scala 和 java 兩套使用接口;killim 需要對編譯出來的 class 檔案進行後處理。

最近項目需要架構整改,以支撐後續的發展,正在考慮是否采用 actor 模型。

actor 模型有什麼優點和缺點?

actor 模型和 ace reactor(反應堆)有什麼異同?

actor 模型和 proactor 模型有什麼異同?

actor 模型對大型分布式并發開發有什麼好處?

先收集點資料,這兩天好好分析一下。 

actor 是一個計算實體,當其收到消息時,可以并發執行如下操作:

發送有限數量的消息給其他 actor

建立有限數量的新 actor

指定收到下一消息時的行為

      reactor 是一種設計模式,用于一到多個輸入并發向一個服務處理器發送請求時進行事件處理。服務處理器将收到的請求同步分發到相應的請求處理器上。

      按照定義,所有 reactor 系統都是單線程的,但可以應用到多線程環境中。reactor 模型的特點是控制流反轉(inversed flow of control)

      proactor 也是事件處理的設計模式,在這種模式中,長時間運作的活動在單獨的異步過程中處理,異步處理過程技術後,一個 completion handler 被調用。這個有些類似 akka actor 模型中,future 對象的 oncomplete、onsuccess、onfailed 方法。