53

「正しい」アクターの実装を見つけようとしています。私はそれらがたくさんあることに気づきました.1つを選ぶのは少し混乱しています. 個人的にはリモート アクターに特に興味がありますが、完全な概要は他の多くの人にとって役立つと思います。これはかなり一般的な質問なので、知っている実装についてだけ自由に答えてください。

次の Scala Actor 実装 (SAI) について知っています。足りないものを追加してください。

  • Scala 2.7 (との違い)
  • スカラ 2.8
  • アッカ ( http://www.akkasource.org/ )
  • リフト ( http://liftweb.net/ )
  • Scalaz ( http://code.google.com/p/scalaz/ )


  • これらの SAI の対象となるユースケースは何ですか (軽量または「重い」エンタープライズ フレームワーク)?

  • 彼らはリモートアクターをサポートしていますか? リモート アクターには SAI でどのような欠点がありますか?
  • 彼らのパフォーマンスはどうですか?
  • コミュニティはどの程度活発ですか?
  • 彼らはどれくらい簡単に始められますか? ドキュメンテーションはどれくらい良いですか?
  • それらはどれくらい簡単に拡張できますか?
  • それらはどれくらい安定していますか?どのプロジェクトがそれらを使用していますか?
  • 彼らの欠点は何ですか?
  • 彼らの設計原則は何ですか?
    • それらはスレッドベースですか、イベントベース (受信/反応)、またはその両方ですか?
    • ネストされた receiveS
    • アクターのメッセージ ループのホットスワップ
4

5 に答える 5

18

これは、これまでに見た中で最も包括的な比較です。

http://doc.akka.io/docs/misc/Comparison_between_4_actor_frameworks.pdf http://klangism.tumblr.com/post/2497057136/all-actors-in-scala-compared経由

于 2010-12-28T16:02:22.247 に答える
9

Scala 2.10の時点で、scala アクターは非推奨になり、Akka アクターは標準配布の一部になりました。

于 2013-01-17T20:00:57.727 に答える
8

スカラ 2.7.7。vs Scala 2.8.0 RC3ディストリビューション後の2.8 :

新しい Reactor は、オプションの暗黙的な送信者 ID を使用して、より軽量で純粋にイベントベースのアクターを提供します。デーモン スタイルのセマンティクスを持つアクターのサポートが追加されました。効率的な JSR166y fork/join プールを使用するようにアクターを構成できるため、1.6 JVM でのパフォーマンスが大幅に向上します。スケジューラがプラグイン可能になり、カスタマイズが容易になりました。

Haller の設計ドキュメントもあります: Scala Actors: Unifying Thread-based and Event-based Programming

于 2010-05-28T12:09:17.527 に答える
6

私の知る限り、Scala と Akka だけがリモート アクターをサポートしています。

Akka は、akka の商用サポートとプラグインを提供するスケーラブルなソリューションによってバックアップされています。Akka は、既存のフレームワーク (camel、AMQP、JTA、Comet、Spring、Redis) との統合、さらに STM と持続性をターゲットとする重量級のソリューションのようです。

Scala と比較すると、Akka はネストされた受信をサポートしていませんが、アクター メッセージ ループのホットスワップをサポートし、スレッド ベースとイベント ベースの両方のアクター、いわゆる「イベント ベースのシングル スレッド」アクターを備えています。

于 2010-05-25T15:59:26.037 に答える
3

akka は徹底的な一致を強制することに気付きました。したがって、技術的に receive が部分的な機能を期待している場合でも、その機能は部分的であってはなりません。つまり、すべてのメッセージをすぐに処理する必要があります。

于 2010-07-05T08:36:59.320 に答える