Orleans の構成
Orleans の構成は以下のようになっています。
Orleans のクラスターは1つの巨大なコンピューターのように取り扱われます。
スケールアウトやアップグレードによるインスタンス追加や、障害時のインスタンスの突然停止に対応するため、
サイロは、Container Apps、App Service、マネージド k8s などの SaaS にデプロイする前提となっています。
Orleans の基本的な動作は、以下の通りです。
- REST API が定義されたエンドポイントであるフロントエンドで、HTTP リクエストを受信します
- リクエストは適切なグレインにルーティングされグレインのメソッドが呼び出され、データがメモリ内にない場合はDBから取得し、レスポンスを返します
Orleans の重要なプリミティブ(構成要素)
Orleans の全体像を把握するために、重要な構成要素はフロントエンド、グレイン、サイロの3つです。
プリミティブ | 概要 |
---|---|
Frontend | Orleans の世界と外部とのゲートウェイ HTTP Request/Response と Grain Call/Response の変換を行います。 |
Grain | フロントエンドから呼び出す際のID(identity)、業務ロジック実装(behavior)、インメモリの状態(state)で構成されるエンティティ クラスターでホストされているグレインは、1 つのプロセス内にあるかのように相互に通信できます。 |
Silo | グレインをホストするインスタンス クラスターとして実行され、サイロ同士は互いに連携して作業を分散し、失敗を検出して復旧できます。 |
次の記事はこちらです。
hiro128.hatenablog.jp