Einfache Frage. Warum "zmq auf Java portieren" und es JeroMQ nennen, ist eine gute Idee?Warum braucht man JeroMQ, wenn es JZMQ benutzen kann?
6
A
Antwort
14
JeroMQ ist ein offizielles Projekt der ZeroMQ Gemeinschaft; Es ist ein vollständiger Port der C++ libzmq-Bibliothek, die Version 3.2 unterstützt.
Vorteile:
- reine Java, so dass keine Notwendigkeit in C/C++ über JNI zu verknüpfen. Dies ist äußerst hilfreich auf Geräten, auf denen native Bibliotheken schwierig oder unmöglich sind.
- 100% kompatibel mit der JZMQ API (die beiden Projekte vereinbart auf einer einzigen API, so dass Sie die eine oder andere transparent importieren können).
- 100% kompatibel mit dem ZeroMQ-Kabel-Protokoll, so dass Sie einige Knoten mit JeroMQ und einige mit der nativen Bibliothek ausführen können, und es funktioniert wie erwartet.
- Gute Leistung, relativ nah an der nativen Bibliothek.
Nachteile:
- Kein PGM Multicast - es gibt keine Java-Version dieser Bibliothek noch.
- Die ZeroMQ v4-Funktionalität, einschließlich der Sicherheit, wird noch nicht unterstützt.
3
JeroMQ ist eine reine Java-Implementierung von ZeroMq. Wenn Ihre Zielsprache Java ist, ist es einfacher, mit JeroMq zu beginnen, da es eine einzige JAR-Datei verwendet. ZeroMq (zmq) wird dagegen in C geschrieben. Sie müssen zmq, libzmq und die Java-Sprachbindungen jzmq erstellen, um sie in einer Java-App zu verwenden. Die JeroMq-API ist identisch mit jzmq. Daher hat das Starten mit JeroMq und das Wechseln zu jzmq später keine Auswirkungen auf Ihre Anwendung, mit Ausnahme der Leistung. zmq funktioniert besser als JeroMq.
Hoffnung, die hilft,
Verwandte Themen
- 1. Datepicker funktioniert nicht, wenn man versucht, es zu benutzen
- 2. Wie man jeromq in MATLAB verwendet
- 3. Warum, wenn Sie sys.platform auf Mac benutzen, es "darwin" drucken?
- 4. warum kann ckan chinesisch nicht benutzen?
- 5. Wie kann man loadConnectedPlayers benutzen?
- 6. Was ist JBPM? Warum es benutzen?
- 7. Was bedeutet "Exposition nur"? Warum es benutzen?
- 8. Wenn Pentaho Open Source ist, kann ich es einfach benutzen?
- 9. Wann man in R Kinder benutzen kann?
- 10. 0MQ - JZMQ Unzufriedener Linkfehler
- 11. Warum ist dieser JeroMQ (ZeroMQ Port) Benchmark so langsam?
- 12. Warum sollte ich Gitignore benutzen?
- 13. Warum sollte man einen Service auf ZF2 benutzen?
- 14. Warum fehlt mir angular-cli-build.js? Muss ich es benutzen?
- 15. Freebase schlägt vor - kann es eine entfernte Datenbank benutzen?
- 16. Wie überprüft man, ob der JZMQ-Anschluss angeschlossen ist
- 17. mysql "Drop-Datenbank" braucht Zeit - warum?
- 18. Warum braucht Scala die Def-Anweisung?
- 19. Haskell: warum ich LiftM Linien nicht benutzen kann. getContents
- 20. Warum braucht Service-Intent Explicit Intent
- 21. Warum Funktionsaufruf so viel Zeit braucht?
- 22. iPhone/iPad Aktive Architektur? Was ist es? Warum ist es da? Wer braucht es?
- 23. Wie kann ich es schaffen, dass Slackbots Giphy benutzen können?
- 24. Tombstoning arbeiten, aber braucht meine App es?
- 25. Warum benutzen Menschen keine Tetraeder für Skyboxen?
- 26. Android ROM Entwicklung. Was braucht es?
- 27. Wie kann ich .svn Verzeichnisse ignorieren, wenn Sie sloccount benutzen?
- 28. Was ist IPC? Wie kann ich es benutzen?
- 29. Ist Ngrok sicher zu benutzen oder kann es kompromittiert werden?
- 30. Wie kann ich andere Dateien bündeln, wenn Sie cx_freeze benutzen?
Weil jemand wollte - vermutlich um ein Problem zu lösen. Fragen Sie sie, warum (siehe z. B. FAQ/Dokumentation). Was den Namen angeht, warum nicht? Häfen und enge Konkurrenten folgen normalerweise "ähnlichen" Namen, um zu zeigen, dass sie eng verwandt sind. emacs/xemac, vim/gvim, NUnit/XUnit, Hibernate/nHibernate usw. – user2246674