2016-07-13 5 views
1

Beste Ansatz des WCF-Service für die Bearbeitung großer Anfrage wie 10k Anfrage auf einmal. Bitte vorschlagen.beste Möglichkeit, große Anfrage in WCF zu behandeln

Edit:

Lassen Sie mich klar, ich habe ca. 10k Hardware-Geräte, die über die Ethernet-Verbindung. Jetzt muss ich von den Geräten kommunizieren. So ist der beste Weg, um diese Situation in WCF zu behandeln.

+0

Sind Sie über die Anzahl der Anfragen pro Sekunde zu fragen ist 10k oder die Größe der Übertragung zurück ist 10k? – Mike

+0

nicht pro Sekunde, aber möglicherweise in 15/20 Minuten. – vikky

+0

Die Antworten werden gehalten, aber abhängig von Ihrer Hardware können Sie mit einem einzelnen Web-/Anwendungsserver zufrieden sein, abhängig davon, wie schnell der Rest der Komponenten im Stapel ist. Leistung ist immer schwierig, da Sie immer wissen müssen, wo das Problem liegt. Wenn Sie beispielsweise die CPU-Auslastung in der Web- oder App-Ebene ausgeschöpft haben, können Sie einen Lastenausgleich installieren und die Hardware erweitern, um diese vielen Anfragen zu bearbeiten. Wenn Ihre Datenbank langsam reagiert, wenn Sie Verbindungspools verwenden, benötigen Sie mehr Festplatten, mehr Arbeitsspeicher usw. Sie müssen die Leistung auf jeder Ebene messen und hinzufügen, wo Sie sie benötigen. – Mike

Antwort

1

Hängt davon ab, was das Problem ist und was der Inhalt ist. Es hängt auch davon ab, ob es die Übertragung von 10k ist (was bei einer schnellen Verbindung nicht lange dauern sollte) oder ob es die Erzeugung des Ergebnisses ist.

Nehmen wir an, es ist die Datenübertragung.

Compression

Sie könnten versuchen, GZIP-Kompression (WCF Compression) zu aktivieren, um zu sehen, ob die Dinge beschleunigen würde. Beachten Sie, dass bei der eigentlichen Komprimierung und Dekomprimierung ein gewisser Aufwand anfällt.

Streaming

nicht sicher, ob dies würde die Dinge beschleunigen (WCF Streaming).

Massen holen

Wenn möglich, Sie könnten Sie Daten in Stücke und dann auf dem Client mehrere Threads/Tasks für das Abrufen von verschiedenen Stücke der Daten beginnen und legte sie dann alle zusammen, wenn alle Threads sind fertig . Dies könnte auch die Dinge beschleunigen, wenn das Problem tatsächlich Datenerstellung ist.

+0

, Siehe den Bearbeitungsteil. – vikky

0

Wenn Sie mit großen Anfrage beschäftigen möchten, nehmen Sie Daten als Anfrage.

dafür müssen Sie die Leserquotas ändern. da WCF standardmäßig nur 8192 Zeichen erhält. so müssen Sie die Leserquotas ändern.

Beispiel:

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
      maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
Verwandte Themen