重複の可能性:
Akkaの優れたユースケース
驚異的並列問題にAKKAアクターフレームワークを使用することが理にかなっている理由を理解しています。
重い計算を必要とせず、並列化する必要はまったくないが、それでも高度に分散されている問題についてはどうでしょうか。たとえば、特定のカウンターをインクリメントまたはデクリメントできる何千もの分散クライアント?
重複の可能性:
Akkaの優れたユースケース
驚異的並列問題にAKKAアクターフレームワークを使用することが理にかなっている理由を理解しています。
重い計算を必要とせず、並列化する必要はまったくないが、それでも高度に分散されている問題についてはどうでしょうか。たとえば、特定のカウンターをインクリメントまたはデクリメントできる何千もの分散クライアント?
明らかな分散性とスケーラビリティの議論に加えて、アクターには本当に優れた側面があります。
アクター モデルでは、メッセージ パッシングとエラー処理を完全に切り離すことができます。これら 2 つは、従来の OO でしっかりと織り込まれています。メソッドを呼び出すと戻り値が得られますが、考えられるすべてのエラーも処理する必要があります。アクターにメッセージを送信すると、応答のみが返されますが、すべての失敗はアクターのスーパーバイザーによって処理されます。
もう 1 つの良い点は、カプセル化の改善です。通常、「通常の」オブジェクト指向では、オブジェクトに公開されているものが多すぎます。そうでない場合でも、リフレクションを使用できます。Akka のアクターは完全にカプセル化されており ("this" 参照を送ってごまかす場合を除きます)、誰も状態をいじることはありませんが、アクター自身です。
前のポイントに関連して、メッセージの受信がアクターの動作への唯一のエントリ ポイントであるという事実は、各パブリック (または保護された) メソッドが入り口として使用される可能性がある通常の OO コードよりも推論を容易にします。予定外の対話を見逃すために、これらの呼び出しを同時に実行する必要はありません。
アクターは、分散と並行性(そして最終的には並列処理)の両方に役立つ計算モデルです(分離とメッセージパッシングのため)。したがって、アクターは、1台のマシンで実行スレッドが1つしかない場合、または数千のマシンで数千の実行スレッドがある場合に使用できます。