問題タブ [actor-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - AKKAを使ったチャットサーバーのフレームワーク
アクター モデルを活用するために、AKKA (JAVA API) を使用してチャット サーバーを開発しようとしています。同じために利用できるフレームワークはありますか
java - 共有キュー VS アクター モデル
私の J2EE Web アプリでは、呼び出しの数をカウントするために、すべての Web API 呼び出しのカウントを分離されたスレッドに送信する必要があります。可能性は次のとおりです。
a) アトミック long を使用します。1 分間に数百万回の呼び出しがあった場合、競合が発生すると思います。つまり、すべてのスレッドが単一の変数を更新しようとします。
b) 共有キューを使用します。すべての要求処理スレッドがキューに挿入され、専用カウンター スレッドがそのキューからデキューされ、カウントがインクリメントされます。
c) アクター モデルを使用します。たとえば、Akka ライブラリを使用します。非同期メッセージをアクターに送信すると、それがカウントに追加されます。
私の質問は、方法(b)が(c)とどのように比較されるかです。長所と短所、および低レベルでの違いは何ですか?
akka - Akka Actors のメッセージの順序付け
Akka Actors と Actor Model について少し混乱しています。アクター A からアクター B に送信されたメッセージは順序を保持しますか? これは、ローカル/ネットワーク環境でどのように実現できますか? 私の知る限り、ネットワークは可変レイテンシーを導入します.M1のレイテンシーが1秒でM2が0.5秒の場合、メッセージM1とメッセージM2はどのように順序を維持できますか?
html - Web ワーカーはアクター モデルを使用しますか?
アクター モデルと Web ワーカーがどのように機能するかを理解しようとしています。
https://dzone.com/articles/html5-web-workers-classicでは、「Web ワーカーは、スクリプトが明確に定義された不変メッセージを介してのみ通信できるメッセージ パッシング モデルを提供し、データを共有せず、シグナリングまたはデータの整合性のために同期メカニズムを使用してください。」
私には、俳優モデルに非常に似ているように聞こえます。違いはありますか?
更新: ベンジャミン・アーブによると:
アクター モデルの基本的な考え方は、さまざまな方法でメッセージを受信したときに動作できる並行プリミティブとしてアクターを使用することです。
1.有限数のメッセージを他のアクターに送信します。
2. 有限数の新しいアクターをスポーンします。
3. 独自の内部動作を変更し、次の着信メッセージが処理されたときに有効になります。"
最初の 2 つは当てはまりますが、最後の 1 つはどうでしょうか。
groovy - GPars、アクターの NullPointerException
グルービー: 1.8.6
GPars: 0.12 または 1.2.1
OS: Ubuntu 14.04 LTS
このコードを実行すると、NullPointerException が頻繁に発生します。a と b の範囲が広いほど、このエラーが発生しやすくなります。ただし、範囲が制限されている場合、エラーは発生しません。
なぜエラーが発生したのか理解できません。
akka - Akka の監視対象のアクターは、直接またはそのスーパーバイザー経由でメッセージを受信する必要がありますか?
最近、Riccardo Terrell による Akka.NET と F# に関する素晴らしいビデオを見ました。しかし、私が尋ねようとしている質問は、一般的に Akka に関連しています。彼がスーパーバイザーとエラーに対する監督戦略について話している部分に戸惑いました。彼の例では、クライアントはメッセージをスーパーバイザーに送信し、スーパーバイザーは worker.Tell(msg, mailbox.Sender()) を呼び出してワーカー アクターに転送します。私はそのような慣習がどれほど一般的であるか疑問に思います。私たちのシステムでは、クライアントが最初にスーパバイザにワーカー インスタンスを取得するように依頼し、次にワーカーに直接 Tell 呼び出しを行う場所がいくつかあります。Ask の使用には満足していませんが、私たちのケースではワーカー アフィニティが必要です。つまり、同じクライアントからのメッセージを同じワーカーにルーティングする必要がある場合があるため、クライアントにワーカー インスタンスを与えることでこれが簡単になります。しかし、繰り返しますが、尋ねるのは悪いことです。監視対象のアクターの場合、(Ask を回避するために) スーパーバイザー経由でメッセージを受信することになっているのでしょうか、それとも「場合による」のでしょうか?