私は、1回のPOSTリクエストしか処理しないRESTサービスを持っています。私は要求を処理するために俳優を使いたいです。しかし、私は1人の俳優を作って、この俳優を使ってすべてのリクエストを派生させるべきかどうか、または私がリクエストを受けるたびに俳優を創り出すべきかどうかはわかりません。これらの選択の長所と短所は何ですか? また、1つのアクタを作成し、そのアクタを使用してすべてのリクエストを処理すると、どのようにパラレル実行されますか。確かに逐次実行のようです。私もこれを理解したいと思います。Akkaアクタを作成するタイミング
答えて
1つのアクタリクエストは、アクタメールボックス内でキューに入れられ、アクタによって1つずつ処理されます。これは逐次的であり、推薦されません。それは言われている理由
ザッツは
一つの俳優には俳優ではありません。
他のアクタを管理するマネージャを作成します。アクターは非常に安価であるため、問題なくあらゆる要求に対して1つのアクターを作成できます。 db相互作用や他の重い計算を将来的に行い、未来の直接の結果をpipeTo
パターンを使用して処理する俳優に要求します。
俳優は仕事を分けて配布し、集中的な仕事をするために先物を使うためにだけ使う。
@pamuが言ったことに同意します。俳優は安いです。しかし、あなたがシングルトンアクターを使うつもりなら、ステートフルにしてトラブルを引き起こさないように注意してください。
あなたが集中的な仕事をするために先物を使うつもりなら(これはすべきことです)。特定のExecutionContext/Dispatcherを指定してください。グローバルディスパッチャーまたはExecutionContextを使用することは良くありません。
または、それぞれのapiで、その種のエンドポイント/ apiで動作するアクターの数を制御する特定のディスパッチャを作成します。例えば
あなたは「/ /取得取引」
はスレッドだけのこの#を生むだろうディスパッチャを指定しています。このAPIの場合。
この利点は、アプリが使用するスレッド数とリソース数を制御できることです。それは、大量のトラフィックを扱うことになります。これは良い習慣です。
リクエストごとにアクタを作成し、「tell」パターンを使用して、新しく作成したアクタに作業を委任します。使用しているRESTフレームワークが別のアクタ(Spray、Akka-HTTPなど)からのリクエストを完了することをサポートしている場合、この新しいアクタからリクエストを完了できます。このようにして、リクエスト処理担当者は次のリクエストを自由に処理できます。
thisは、是非&の賛否両論を説明するすばらしいリソースを見つけます。& tell-per-request-actorsそれはあなたに役立つことがあります。
- 1. ランダムユーザーインタラクションジェネレータ - Akkaアクタ
- 2. Akka WebSocketで別のアクタを作成できません
- 3. ユニットテストAkkaアクタを使用するコンポーネント
- 4. リンクされたすべてのアクタをシャットダウンするカスタムAkkaスーパーバイザを作成する
- 5. akkaアクタから同時に関数を実行する
- 6. Scala/Akka/Guiceは子アクタを動的に注入します
- 7. タイミングでファイルを作成/削除する
- 8. Akkaテストキットを使用してActorRefから基底アクタを取得
- 9. アクカストリームのアクタからのフローの作成
- 10. 永続アクタを使用したAkka Shardingの背圧
- 11. 多型と型制約を持つakka型付きアクタ
- 12. BoundedMessageQueueを使用してアクタを作成する
- 13. 既存ブランチを使用するタイミングと新しいブランチを作成するタイミング
- 14. Akkaのアクタのプロパティを@volatileにする必要がありますか?
- 15. Akka Springインテグレーションでアクタの名前が設定されない
- 16. Akkaのアクタの検索または依存の注入
- 17. アクタのアクタを持つストームトポロジビルダー
- 18. Akka.NETはF#システム内でC#アクタを作成できますか?
- 19. なぜこのakka FSMアクタではデータは常に空ですか?ここ
- 20. プールされたAKKAアクタは、自分の子アクタからの送受信のみを保証するにはどうすればよいですか?
- 21. AkkaのActorLogging特性の代わりにDiagnosticActorLoggingを使用するタイミングは?
- 22. PayPal WebProfileオブジェクト(PHP)を作成して削除するタイミング
- 23. デザイン - 新しい機能を作成するタイミングは?
- 24. iOS - 子ViewControllerとUIViewサブクラスを作成するタイミングは?
- 25. マルチモジュールMavenプロジェクトを作成する理由とタイミング
- 26. 新しいsolrコアを作成するタイミングは?
- 27. Yii2 Advancedテンプレートでモジュールを作成するタイミングは?
- 28. Angular2タイスクリプトでコンストラクタを作成するタイミングは?ここ
- 29. レールに新しいコントローラを作成するタイミング
- 30. コールの前にメッセージを蓄積するアクタのアクタ