私は、ステートレスWebApiゲートウェイサービスタイプとステートレスワーカーサービスタイプの2つのサービスタイプからなるSFアプリケーションタイプを持っています。私はデフォルトのゲートウェイサービスインスタンスで1つのアプリケーションインスタンスを作成しています。同じノード上で動的に作成されたサービスのサービスファブリックプロセス分離
var serviceDescription = new StatefulServiceDescription()
{
ApplicationName = new Uri("fabric:/Gateway"),
ServiceName = new Uri("fabric:/Gateway/Worker-" + SomeUniqueWorkerId),
ServiceTypeName = "WorkerType",
HasPersistedState = true,
PartitionSchemeDescription = new UniformInt64RangePartitionSchemeDescription(),
MinReplicaSetSize = 1,
TargetReplicaSetSize = 1
};
await client.ServiceManager.CreateServiceAsync(serviceDescription);
SFは、一つのノードにワーカーサービスタイプの2つ以上のインスタンスを配置し、:ゲートウェイサービスインスタンスは、このようなコードを使用して、オンデマンドで動的にワーカーサービスインスタンスを作成する(client
変数System.Fabric.FabricClient
インスタンスです)彼らはすべて同じプロセスを共有します(つまりWorker.exe)。異なるWorkerサービスインスタンスが異なるファイル共有から異なるバージョンのアセンブリを動的にロードする必要があるため、これは問題です。したがって、私の質問は次のとおりです。SFは、同じタイプの複数のサービスインスタンスを1つのノードに別々のプロセスでホストするよう強制できますか?
(私はゲストの実行ファイルがそのように動作することを考えています。)
同じアプリケーションタイプのアプリケーションインスタンスをさらに作成し、そのアプリケーションタイプのインスタンスを作成するには、Workerサービスタイプのインスタンスのみが含まれている必要があります。別のアプリのタイプがここではっきりしていることに同意しますが、両方のオプションを利用できます。 – masnider
@ vaclav-turecekサービスインスタンスを同じプロセスにどのようにマッピングするかを記述したService Fabricのドキュメントを指摘できますか?私は、この動作を説明しているドキュメントの何かを見ていることを思い出しません。残念ながら、同じプロセスであるため、同じノードでもプロセスレベルの分離が予想されていたため、StructureMapを使用してDIを配管する配管が一部破損していました。 –