【あくたーもでる】

アクターモデル とは?

最終更新:
💡 それぞれの担当が、自分の状態を持ってメッセージで連携

状態を持つアクター同士が、メッセージで連携する並行処理のモデル。各アクター内の処理と全体の並行性、配送の保証や障害対応を分けて説明します。

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

参考資料

← 用語集にもどる