ZeroMQ + -Protokollpuffer
ZeroMQ FAQ Seite empfehlen die Verwendung von Google protobuf als ein Weg, um serialise Inhalt der Nachricht.
Hat jemand sehen, ein gutes Beispiel?
Ich auch brauchen, um die Antwort auf die Frage "Was ist der größte Vorteil des serialising Nachrichten?" -
ob es etwas kann ich ohne Leben, und nehmen Sie den Vorteil der dünneren pipeline.
Ich mag die Idee von .proto
Dateien und die protoc
compiler.
Auch, es scheint, dass ein weiteres großartiges Werkzeug, um zu werfen, auf dem Spielplatz wäre libev
jede
Kommentare sind willkommen 🙂
InformationsquelleAutor der Frage errordeveloper | 2011-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du 100% sicher, dass die Programme, die gehen, um die Kommunikation über ZMQ jederzeit in der Lage sein, einander zu verstehen binäres format (zB weil Sie immer verteilt zusammen waren und alle wurden mit den gleichen compiler-Optionen sowieso) sehe ich keinen Vorteil für den overhead, der durch die Serialisierung.
Sobald die oben genannte Bedingung nicht erfüllt werden kann (wie partner-Programme laufen auf verschiedenen host-Arten, Programme, geschrieben in verschiedenen Sprachen oder auch partner-Programme, die sich entwickeln können und unabhängig voneinander in der Zeit - das kann zu Inkompatibilitäten in Ihrem rohen binären Strukturen) Serialisierung wird ziemlich wahrscheinlich ein muss.
Es scheint, dass heutzutage jeder und Ihr Bruder ist die Schaffung von Serialisierungs-Lösungen, die möglicherweise ein Indiz dafür, dass es kein one-size-fits-all-Lösung. Auf dieser Seite enthält eine ziemlich Gründliche benchmarking der Serialisierung, Deserialisierung und Zeit Größen für 27 (!!) unterschiedliche Serialisierungs-Systeme. Überspringen Sie nicht den ersten Absatz der Seite, es sagt "Warnung, benchmarks irreführend sein kann". Ihre Anwendung, Ihre Daten sind das, was zählt für Sie, aber die vorgestellten Daten es kann Ihnen helfen, verengen die Entscheidungen, die Sie wollen, im detail zu studieren.
InformationsquelleAutor der Antwort fvu
Hier ist ein Beispiel, das senden und empfangen von Nachrichten durch java und in C++:
Serialisierung in java:
De-Serialisierung in java:
Serialisierung in C++:
De-serializign in C++
InformationsquelleAutor der Antwort Chand Priyankara
Ich bin nicht sicher, PUB/SUB in 0mq arbeiten mit protobuf, weil 0mq erwartet einen string topic am Kopf des msg.. aber protobuf stellt ein Feld Deskriptor ersten.
tatsächlich hier ist ein link mit einer Lösung.
http://www.dotkam.com/2011/09/09/zeromq-and-google-protocol-buffers/
cheers
InformationsquelleAutor der Antwort jaybny
Braucht man immer zu serialisieren, wenn die Kommunikation. Strukturen sind random-access. Kommunikations-Ebenen, wie ZeroMQ sind Seriell.
Können Sie die "Standard-Serialisierung" , kommt mit Ihrer Sprache.
Beispielsweise in C++ eine Struktur mit keine Zeiger haben eine bestimmte binäre Anordnung einer direkt verwandelten sich in ein byte-array. Diese binäre layout ist, indirekt, Ihre Serialisierung Schicht, und ist in beiden Sprachen und compiler spezifisch.
Solange Sie beschränken sich auf Strukturen, die keine Zeiger sind und mit dem gleichen compiler und Sprache auf beiden enden des Rohres... fühlen Sie sich frei, um zu vermeiden, eine Bibliothek, das ist ein zusätzlicher Serialisierung auf der Oberseite des Standard-Layouts zur Verfügung.
InformationsquelleAutor der Antwort Erik Aronesty