2010-12-15 10 views
0

Wir haben zu fragen mehrere Clients für die Arbeit von Server -. Einer Liste von 10000 Urls = 1MBBestes Format/Komprimierung/Protokoll zum Transport von Daten vom Client zum Server?

und zurück verarbeiteten Daten zurück zum Server zu senden - um 1 KB pro URL dh 10 MB

wird jeder Kunde tun, dass jeder 5-10 Minuten.

Ich habe Anforderungen an die Erweiterbarkeit, hohe Leistung und Plattformunabhängigkeit in dieser Reihenfolge.

  1. Sollte ich XML oder benutzerdefinierte Binärformat für die Übertragung verwenden?

  2. Beste Kompressionsart zu verwenden? Gzip, ich sehe .NET Leute mit ICSHARP-Bibliothek. Was sind Kompromisse?

  3. Sollte der Client Daten per POST senden? oder eine andere bessere Methode?

  4. Haben Sie noch weitere Vorschläge für ein solches Szenario?

Antwort

1
  1. Ich würde BSON betrachten, nur weil es jetzt viel Aufmerksamkeit bekommt, und Sie sollten die Serialisierer gut unterstützt finden. Es ist auch ein ziemlich knappes Drahtprotokoll, weshalb es im Fokus einiger hochkarätiger nosql dbms steht.

  2. Soweit Kompression, verwenden Sie, was auch immer Ihre Webserver unterstützen (wahrscheinlich gzip). Die Kompromisse bei der Komprimierung ergeben sich fast immer aus den verbrauchten CPU-Zyklen und der Kompaktheit der Komprimierung. Aber am Ende ist gzip eine gute Mitte der Straße, und alles, was Sie tun müssen, um es zu benutzen, ist es einzuschalten.

  3. Ja, POST ist die geeignete Methode.

  4. Wenn Leistung oder Nebenläufigkeit zu Engpässen werden, können Sie gzip (und SSL und Authentifizierung und Sitzung und viele andere Dinge) auf eine Ebene vor Ihren Webservern verschieben. Aber mein Einfall ist, dass Sie I/O-Einschränkungen auf der Serverseite haben werden. Viel Glück.

0

Haben Sie JSON in Betracht gezogen? Die gleichen Informationen wie in einer XML-Datei, aber weniger Text zum Beschreiben.

Verwandte Themen