Im Moment habe ich eine Lösung, die ZeroMQ verwendet, um Protokoll-Puffer-Payloads auszutauschen. Die Protokollpuffermethode der Serialisierung bleibt so wie sie ist, aber ich kann ZMQ durch eine bequemere Option ersetzen. Die Dinge, die ich nicht glücklich bin in ZMQ sind:Was sind die Alternativen zu ZeroMQ für das Verschieben von Protokoll-Puffer-Payloads?
Es verwendet JNI auf der Java-Seite, und ich habe vor von JNI, in komplexen, Multi-Thread-Szenarien gebissen worden. Ich versuche es zu eliminieren, wann immer ich kann.
Ich brauche keine Warteschlange, ich brauche nur rpc.
Meine Anforderungen (die von ZeroMQ meist bedeckt sind) sind:
Unterstützung für 32/64 Bit * nix, Windows, MacOS.
Unterstützung für Java, C++ und C# in erster Linie und Python, Ruby usw. wäre nett.
Die Sprachunterstützung muss von nativen Implementierungen in der Sprache bereitgestellt werden, nicht durch das Einbinden von systemeigenem Code.
Hohe Leistung.
Nicht Viral Lizenz, keine GPL, AGPL usw.
Ich habe über die Verwendung von Thrift als Transportschicht über TCP denken (ich denke, es unterstützt die) mit Protokollpuffern Nutzlasten, wenn seine Java-Implementierung für Messaging verwendet JNI nicht.
Welche Optionen können Sie für dieses Setup anders als ZMQ denken?
Haben Sie sich Thrift genau angesehen? Das letzte Mal, als ich es angeschaut habe, war es nicht - nur - Transport: Es ist ein * Ersatz * für Protokollpuffer (plus Transport). –
Es ist nicht klar, was Sie wirklich von 0mq brauchen. Es ist ziemlich generisch (sieht fast wie gerade Steckdosen aus), also bedeckt es eine Menge von Gorund. Du suchst Schlange? RPC? –
@GregKopff: Ich kann Protokollpuffer in diesem Projekt nicht ersetzen. Es muss für die Serialisierung verwendet werden, egal was die Transportmethode ist – mahonya