7

俳優ベースのパラダイムはかなりクールです。効果的に拡張できるため、並行システムを評価する必要があるパラダイムになります。私はそれについていくらか読んだことがあり、コアの意図についてまともな考えを持っています。メッセージと複数の「アクター」を使用してコストのかかる操作を実行し、要求/応答の相互作用による待機を最小限に抑えて、システムのスループットを向上させます。しかし、私は人々が俳優と一緒に使用するデザインパターンに十分に触れていませんでした。アクターベースのシステムのデザインパターンを探しています。

アクターデザインパターンの一般的な例は、マスターコーディネーターアクターと多数のチャイルドワーカーアクターが存在するシステムです。彼らは、高価な操作をより小さなチャンクにマスターマップし、より小さなチャンクをメッセージとしてワーカーの束に送信し、それらからの応答を待ってから、それらすべてを結果に還元します。このパターンのいくつかの洗練された例では、ワーカーアクターは、より多くの作業の準備ができていることをマスターに通知し、マスターはオンデマンドでより多くの作業をそれらにルーティングします。これにより、作業の適切なバランスが確保され、ジョブのサイズが大幅に異なる場合に役立ちます。

私はより多くの俳優ベースのパターンに関する文献を探し回っていましたが、上記以外の例はまだ見つかりませんでした。Akka Actorsプロジェクトのサンプルはまだ調べていませんが、ポインターがあれば非常に役立ちます。

4

5 に答える 5

11

Derek Wyattの「AkkaConcurrency」の本を強くお勧めします。これは、最新のAkkaディストリビューション(2.1)に焦点を当てており、Akkaと多くのデザインパターン(イベント駆動型デザインを強調)を使用するいくつかのベストプラクティスを網羅しています。ただし、Scalaではかなりの知識があることを前提としています。

Akka Summer of Blogシリーズの投稿も非常に役立ちます(そのうちのいくつかはDerekによって書かれています[そして1つは私によって書かれています])。

于 2012-11-26T02:59:20.480 に答える
3

まず、 http://en.wikipedia.org/wiki/Flow-based_programminghttp://en.wikipedia.org/wiki/Dataflow_programmingに精通します。アクターモデルはデータフロープログラミングのサブセットであり、アクターモデルの実装はさらに制限されています。

于 2012-11-28T03:05:00.463 に答える
2

同様の質問に対してより詳細な回答をしましたが、ここでは、アクターモデルに関して最も興味深いと思ったリソースを要約します。

デザインパターン:

リアクティブアクターとDDD:

プロトアクター(Alexey Zimarevの助けを借りたAkkaのクリエイターの1人によるプロジェクト)。このプロジェクトは、非常に手の込んだAkkaよりも理解しやすいと思います(私はそれらに所属していませんが、使用を検討しています):

そして、Githubアクターモデルのトピックを検索すると、興味深いものが得られる可能性があります。

QCon Video Actors or Notで見つけたいくつかの本の推奨事項:非同期イベントアーキテクチャ:

于 2021-06-23T09:52:26.940 に答える
1

ここで、エンタープライズ統合パターン( http://www.eaipatterns.com/ )に関する作業について言及する価値があります。「俳優」という言葉が彼らの作品で言及されていない可能性は十分にありますが、キュープロセッサから俳優への翻訳は、ポーを英語からフランス語に翻訳するように簡単です。あなたが説明するような負荷分散のパターンは、そこで学ぶことの中で最も少ないものです。

于 2012-11-26T02:44:25.467 に答える
1

イベントベースのプログラミングに関する文献をさらに見つけました。

http://www.amazon.com/Event-Based-Programming-Taking-Events-Limit/dp/1590596439/ref=pd_rhf_ee_s_cp_8

イベントベースの相互作用パターンに関する章は有望であるように思われました

于 2012-11-28T06:44:11.013 に答える