【あくたーもでる】
アクターモデル とは?
最終更新:
💡 それぞれの担当が、自分の状態を持ってメッセージで連携
状態を持つアクター同士が、メッセージで連携する並行処理のモデル。各アクター内の処理と全体の並行性、配送の保証や障害対応を分けて説明します。
📌 このページのポイント
- 各アクターが自分の状態とメッセージの処理を担う
- 他のアクターの内部状態を直接操作せず、メッセージで依頼する
- Akkaでは各アクターが一度に一つのメッセージを処理する
- 配送・順序・障害への対応は、実装と設計の条件を確認する
アクターは、どんな担当なの?
例えば注文受付と在庫管理を別々のアクターにするんだ。在庫管理は自分の在庫を持ち、注文受付から「在庫を確認して」というメッセージを受けて処理するよ。
結果はどう受け取るの?
返事もメッセージで送るよ。他の担当の内部状態を直接書き換える代わりに、依頼と返事で連携する。送った側は、返事を待つ間にも別の仕事を進められるんだ。
たくさんのアクターは、同時に動ける?
例えばAkkaでは一つのアクターが一度に一つのメッセージを処理し、異なるアクターは並行に仕事を進められるよ。一つのアクターにつき専用スレッドを必ず用意する、という意味ではないんだ。
メッセージなら、失敗や順序の問題はなくなる?
なくならないよ。Akkaの基本の送信は配送を保証せず、順序の保証にも送信元と送信先などの条件がある。必要に応じて確認・再送・重複への対応を設計する。異常時に止めるか再起動するかも、監督の方針で決めるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「アクターモデル」って出てきたら「状態を持つ担当同士がメッセージで連携する並行処理のモデル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Actor Model」 = アクターを単位として処理を組み立てるモデル
💬 アクターは内部状態とメッセージの処理を持つ単位です。役者たちが連絡を取り合う姿を思い浮かべると、担当を分けるイメージがつかめます。