Leicht und low-latency-Java-Netzwerk-Bibliothek?

Arbeite ich an einer client-server-paar, wo der Multithread-client führt Tausende Aufrufe der server pro Sekunde und die erste Priorität ist das erreichen einer minimalen Latenz. Der Durchsatz soll hoch sein, wie gut. Client und server sind in Java geschrieben, die Kommunikation Semantik ist ganz einfach (put/get-Operationen).

Welche ist die beste Java-Netzwerk-Bibliothek/framework für diese Anforderungen? Servern wie Tomacat/Steg scheint im Schwergewicht. Ich denke über MINA oder Netty, aber ich bin mir nicht sicher, dass diese asynchrone libs bieten eine stabile low-latency-unter starker Arbeitsbelastung.

  • Sie sprechen über "die [..] client führt Tausende Aufrufe". Tun Sie wirklich nur einen (oder sehr wenige Kunden)? Frameworks auf Basis der java-nio (netty/mina) Leuchten, wenn Sie mit sehr vielen clients (simultanen verbindungen), aber das bedeutet nicht unbedingt, dass diese clients führen viele Aufrufe. tomcat-http verwendet, während mina/netty sind mehr darauf ausgerichtet, mithilfe von tcp direkt.
  • Ja, ich habe nur ein paar client-Anwendungen, und jede Anwendung hat eine relativ kleine Anzahl von threads (~20). So, insgesamt die Anzahl der verbindungen ist nicht extrem hoch.
  • Fast alle nicht-blockierende Netzwerk-Bibliotheken, die produzieren eine Menge Müll, wie Sie Nachrichten verarbeiten. Es wird sehr schwer sein Echtzeit, wenn Sie die GC-Störungen. Ich schlage vor, Sie nehmen einen Blick auf CoralReactor, die produziert keinerlei Abfall.
InformationsquelleAutor user1128016 | 2012-06-22
Schreibe einen Kommentar