Hat jemand herausgefunden, wie Kernel-Bypass in Java zu tun? Irgendwelche Hallo Welt irgendwo oder das ist Raketenwissenschaft?Netzwerk mit Kernel-Bypass in Java
Antwort
Suche nach "Java Zero-Copy Buffers" oder "Java NIO" oder "Java Netty".
Hier ist eine Diashow über Netty und Null-Kopie: http://www.slideshare.net/danbim/zerocopy-eventdriven-servers-with-netty. Hier ist ein Beispielprojekt mit Netty.
Oder können Sie unteren Ebene gehen und verwenden Sie die java.nio.channels Klassen, die Sie hier lesen können http://www.ibm.com/developerworks/linux/library/j-zerocopy/
Das ist eine gute Info eSniff. Ich benutze Java NIO, aber das umgeht den Kernel nicht. – chrisapotek
Ich habe nicht in Java in Jahren programmiert, so bin ich mir nicht sicher, wie relevant die Antwort ist mehr. Aber warum die Downvotes in letzter Zeit? – eSniff
Wenn Sie Solarflare verwenden, können Sie ihre API verwenden Kernel Bypass zu tun (ich benutze es nicht direkt, kann also keine näheren Angaben machen). Sie können auch ein Messaging-Produkt wie 29West LBM oder IBM LLM verwenden, die umfangreiche Funktionen über verschiedene Hardware unterstützen.
@eSniff Wie erwähnt, hat die JRE transferFrom()
/transferTo()
API, die das Äquivalent sendfile(2)
für die Systeme zu belichten wird jetzt verwendet, die es unterstützen. Die Semantik der API ist so definiert, dass sie transparent implementiert werden kann, um DMA-Übertragungen zwischen beliebigen 2 Kanälen zu unterstützen.
Hey, aber transferFrom und transferTo haben mit FileChannel zu tun! Ich spreche von SocketChannel und DatagramChannel hier für die Vernetzung :( – chrisapotek
@chrisapotek ein SocketChannel ist sowohl ein WriteableByteChannel und ein ReadableByteChannel, also .... someFileChannel.transferFrom (someSocketChannel, pos, count)/someFileChannel.transferTo (pos, count, someSocketChannel) Ich habe nur die Netty-Wrapper selbst verwendet, aber das sollte funktionieren – eSniff
Die TransferXxx ist die Standard-API für die Offenlegung von DMA-artigen Funktionen.In der Oracle HotSpot JRE ab Version 7 ist sie nur für Dateien und Sockets implementiert. Ich denke nicht, dass es zwischen User-Space-Speicher-Puffer und Socket (dh RDMA) funktionieren würde.Der Code hat Erweiterungspunkte und wenn ich nicht irre, können neue Kanaltypen von Provider-Bibliotheken von Dritten hinzugefügt werden. – ddimitrov
- 1. Mutliround Feistel Netzwerk in Java
- 2. Wie ZipOutputStream zu Netzwerk in JAVA
- 3. Java-Datei in einem Netzwerk sperren
- 4. Überprüfen Sie zufällige URLs in einem Netzwerk in Java
- 5. Verbindung zur Datenbank über das Netzwerk mit Java-Anwendung
- 6. Java-Netzwerk-E/A-Blockierung oder nicht?
- 7. Java-Netzwerk-Programmierung Koordination der Nachrichtenübermittlung
- 8. Eine gute Java-Bibliothek für Netzwerk-Mathematik
- 9. Bayes-Netzwerk-Inferenz mit Java-Objekten (Banjo-Problembehandlung)
- 10. Was ist das beste IRC-Netzwerk für Java (#java)?
- 11. Näherungsfunktion mit neuronalem Netzwerk
- 12. Netzwerk Erreichbarkeit mit UIWebView
- 13. Hilfe mit neuronalem neuronalem Netzwerk
- 14. Bild komprimieren und über das Netzwerk in Java senden?
- 15. Wildcard-Bindung in Java bindet nicht an Netzwerk-Aliase
- 16. Verbinden mit dem drahtlosen Netzwerk
- 17. Set DrawableLeft mit Netzwerk-URL
- 18. Netlogo - Probleme mit dem Netzwerk
- 19. VMWare - Netzwerk-Anwendungen
- 20. Ein soziales Netzwerk mit Sinatra
- 21. Neuronales Netzwerk Backpropagation mit RELU
- 22. Temperaturvorhersage mit künstlichem neuronalen Netzwerk
- 23. UDP mit mehreren Netzwerk Vernetzung
- 24. Erhalten Netzwerk ist nicht erreichbar auf IPV6 Netzwerk
- 25. Elektronenzertifikate Netzwerk
- 26. C# Netzwerk-Programmierung mit Lidgren mit Mono
- 27. Verbinden mit Tor-Netzwerk mit Ruby
- 28. Netzwerk-Anfrage Timeout oder Netzwerk verloren oder langsam Netzwerk nicht richtig behandeln in Codenameone
- 29. Java Graph-Bibliothek für Netzwerk-Visualisierung von Graph
- 30. Nicht möglich, eine Datei in einem Netzwerk mit Java Desktop zu starten?
Die Leute, die das geschlossen haben, haben keine Ahnung von Vernetzung. Gute Arbeit, Leute! – chrisapotek
Es gibt einen guten Grund, warum diese Frage existiert. Der Kernel gibt uns nicht den gleichen Paketdurchsatz wie die Benutzer-API. Ich würde ehrlich @Makoto, John Palmer, Don Roby, Rene, Ben darüber ansprechen. –