Wie erreiche ich ein bestimmtes Replikat eines zustandslosen Dienstes?

Ich habe einen zustandslosen Service in Service Fabric erstellt. Es hat eine SingletonPartition, aber mehrere Instanzen (InstanceCount ist in meinem Fall -1).

Ich möchte mit einem bestimmten Replikat dieses Dienstes kommunizieren. So finden Sie alle Replikate, die ich verwende:

var fabricClient = new FabricClient();
var serviceUri = new Uri(SERVICENAME);

Partition partition = (await fabricClient.QueryManager.GetPartitionListAsync(serviceUri)).First();
foreach(Replica replica in await fabricClient.QueryManager.GetReplicaListAsync(partition.PartitionInformation.Id))
{
  // communicate with this replica, but how to construct the proxy?
  //var eventHandlerServiceClient = ServiceProxy.Create<IService>(new Uri(replica.ReplicaAddress));
}

Das Problem besteht darin, dass der ServiceProxy nicht überlastet wird, um einen zum Replikat zu erstellen. Gibt es eine andere Möglichkeit, mit einem bestimmten Replikat zu kommunizieren?

Bearbeite

Das Szenario, das wir erstellen, ist das folgende. Wir haben verschiedene bewegliche Teile mit Zählerinformationen: 1 partitionierter Stateful-Service (mit ein paar hundert Partitionen), 1 partitionierter Stateful-Service (int64) und 1 Akteur mit State. Um die Zählerinformationen zu aggregieren, müssen wir alle Service-Partitionen und Actor-Instanzen erreichen.

Wir könnten es natürlich rückgängig machen und es jedem erlauben, die Anzahl an einem einzelnen (partitionierten) Dienst zu senden. Aber das würde einen Netzwerkaufruf im normalen Ablauf (und damit Overhead) hinzufügen.

Instead, wir haben uns folgendes ausgedacht. Die genannten Dienste und Akteure sind in einem ausführbaren und einem Servicemanifest zusammengefasst. Deshalb sind sie im selben Prozess. Wir fügen den genannten Diensten und Akteuren einen zustandslosen Dienst mit Instanzenzahl -1 hinzu. Alle Zählerinformationen werden in einer statischen Variablen gespeichert. Der zustandslose Dienst kann diese Zählerinformationen lesen. Jetzt müssen wir uns nur noch an den zustandslosen Dienst wenden (der eine Obergrenze für die Anzahl der Knoten hat).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage