4

Azure Service Fabric を使用した POC に取り組んでいます。サービスをローカル クラスターにデプロイしましたが、Local.xml の既定の設定で正常に動作しています。

インスタンス数を変更すると、次の例外がスローされます。インスタンス数を変更するオプションはどこにありますか? 基本的に、現在 2 つのノードでサービスを実行しようとしています。デフォルト値の 1 で問題なく動作しています。

InnerException: HResult=-2146233088 Message=Error -4091 EADDRINUSE アドレスは既に使用されています Source=Microsoft.AspNetCore.Server.Kestrel StatusCode=-4091

私のlocal.xmlはここにコピーされます

  <Parameters>
    <Parameter Name="Product_InstanceCount" Value="2" />
  </Parameters>

どんな助けでも本当に感謝しています。

ありがとう

4

5 に答える 5

6

Microsoft の公式ドキュメントによると、ローカル クラスターにデプロイするときに、サービスのインスタンスが 1 つだけ実行されていることを確認する必要があります。そうしないと、複数のプロセスが同じポートをリッスンして競合が発生します。デプロイ時に複数のインスタンスを設定できます。アズールへ。

ドキュメントを参照してください:- https://azure.microsoft.com/en-us/documentation/articles/service-fabric-add-a-web-frontend/

于 2016-06-30T11:42:13.203 に答える
3

ローカル sf クラスターを使用していて、サービス エンドポイント ポートを固定している場合は、1 つのインスタンスのみを使用します。例えば:

Service.Endpoint はポート 8090 を使用します。これは ServiceManifest.xml で定義されています。ローカル クラスタでは、実際にはすべてが 1 つのノード、つまり開発マシンで実行されます。ハード定義されたポートを使用して同じサービスの 2 つのインスタンスを作成しようとすると、Port already in use エラーが発生します。

1 つのインスタンスに変更するか、それを実際の Azure クラスターに移動するか、ハード コーディングされたポート番号を削除してみてください。

于 2016-11-17T10:54:40.403 に答える
2

この問題は経験していません。

ファブリック クライアントを使用してプログラムでインスタンス数を変更できます。

var fabricClient = new FabricClient();
var instanceCount = 3;
var services = await fabricClient.QueryManager.GetServiceListAsync(new Uri("fabric:/MyMicroServiceApp"));
var service = services.FirstOrDefault(e => e.ServiceName.AbsolutePath.Contains("MyService"));
var updateDescription = new StatelessServiceUpdateDescription();
updateDescription.InstanceCount = instanceCount;
await fabricClient.ServiceManager.UpdateServiceAsync(new Uri(service.ServiceName.AbsoluteUri), updateDescription);

これを使用して、キューのサイズに応じてワーカー プロセスの数を増やす概念実証を開発しました。サービスのインスタンス数を変更するとすぐに、Service Fabric フレームワークはサービスのインスタンスをノードに、またはノードから自動的にデプロイまたは削除します。

于 2017-03-22T09:59:41.353 に答える