回答:
アクターモデル-同時計算の数学モデル、およびマイクロサービス-サービス指向アーキテクチャの実装。類似点は非常に偶然です。
いくつかのアクターモデルに基づいてマイクロサービスを構築し、アクターモデルを使用してマイクロサービスアーキテクチャをモデル化することは確かに可能ですが、これらが同等であることを意味するものではありません。「マイクロサービスシステム」を「電子メールシステム」に置き換えますが、それでも変わりません。「アクターモデル」を「順次プロセスの通信」(CSP)に置き換えます。CSPとアクターモデルシステムは相互にモデル化できるため、これも「true」になります。
アクターモデルを指定すると、マイクロサービス、SOA、または電子メールを使用して実装できますが、実際に比較できるのは同じレベルの抽象化であることではありません。
また、アクターモデルはバッファー(マイクロサービスの世界ではメッセージキューと考えることができます)を重視しているため、本質的に非同期通信がまだ可能ですが、一部のアクター/マイクロサービスは準備ができていません。
言い換えれば、俳優モデルとの比較は、非常に高いレベルの考察で創造的な洞察をもたらすことができますが、ほとんどはリンゴ対オレンジです。
SOA /マイクロサービスの数学モデルとアクターモデルを比較することが目標である場合、1)SOAの合意された数学モデルがない、2)モデルには通常目的が含まれているため、自明ではありません。また、SOA /マイクロサービスモデリングは、アクターモデルの目的とは異なる可能性が非常に高いです。ここで SOAをモデル化する試みの1つの例。
もちろん、マイクロサービスを使用してアクターモデルシステムを作成し、各サービスをアクターと呼ぶことができます(アクターモデルとは厳密な定義を参照してください)。しかし、これは一般的な意味で2つの間に意味のある関係があることを意味しません。
マイクロサービスは、関心のある各領域を独自のデプロイ可能なアーティファクト(実行可能ファイル、スクリプト、JAR、WARなど)に分割することにより、ソフトウェアを編成する方法です。これにより、たとえば、必要な場所により多くのインスタンスを展開することで拡張できるなど、柔軟性が得られます。ユーザーがショッピングカートに物事を追加するよりも、カタログを見る時間の方が長いとします。1つのデプロイ可能なアーティファクトがカタログ機能を処理し、別のアーティファクトがショッピングカート機能を処理します。ロードを処理するためにカタログサービスのコピーをさらに実行できます。
また、内部の変更からそれらを分離します。製品データを保存するためにリレーショナルデータベースからドキュメントデータベースに移動するとします。ショッピングカートサービスを変更する必要はないでしょう。
アクターモデルは、デプロイ可能なアーティファクトよりも下位レベルであり、サービスを実装したオブジェクトの種類についての詳細です。上記の例を続けると、システム内のショッピングカートをアクターで表すことができるため、すべてのユーザーのカートは別個のアクターであり、メッセージはアイテムの追加、アイテムの削除、現在のコンテンツへの応答、配送の追加、チェックアウトを指示しますなど。この場合、マイクロサービスがまだあり、アクターモデルで実装されています。
主な違いは粒度の違いだと思います。
アクターモデルの場合、アクターはOOP内の1つのオブジェクトに相当するものを表す傾向があるという点で、比較的きめ細かいです。
マイクロサービスの場合、単一のマイクロサービスが多数のアクターまたはオブジェクトで構成される可能性があるという点で、比較的粗いです。
最新のWebはさらに大きな粒度(「マクロサービス」)で同じものであると言うために、あまり想像を広げる必要はないことに注意してください。(たとえば)HTTPサーバーはマクロサービス、データベースサーバーはマクロサービス、Webブラウザーはマクロサービスなど。
それはすべてほぼ同じです-通信する孤立した部分。変更されるのは、ピースのサイズ(したがって、ピースの数)だけです。
マイクロサービスは、複数のレプリカを作成することにより水平方向に拡張します。各レプリカは、サービスのステートレスな性質により、リクエストに対応できます。彼らは、その無国籍性のおかげで失敗に対して回復力があります。
アクターは、より少ない負荷またはより多くの利用可能なリソースを持つパーティションに移動することによりスケーリングします。彼らはステートフルです。アクターフレームワークに応じて、別のアクターを動的に起動したり、アクターのホットバックアップを常に維持して障害が発生したプライマリアクターに対処したりできるため、障害に対する回復力があります。
繰り返しますが、マイクロサービスもステートフルになる可能性がありますが、マイクロサービスの設計原則に反します。