Im Moment habe ich eine Lösung, die ZeroMQ zum Austausch von Protokoll-Puffer-Payloads verwendet.
Die Protokollpuffermethode der Serialisierung bleibt so wie sie ist, aber ich kann ZMQ durch eine bequemere Option ersetzen.
Die Dinge, über die ich in ZMQ nicht glücklich bin, sind:
Es verwendet JNI auf der Java-Seite, und ich wurde vorher von JNI in komplexen Multi-Thread-Szenarien gebissen. Ich versuche es zu eliminieren, wann immer ich kann.
Ich brauche keine Warteschlangen, ich brauche nur rpc.
Meine Anforderungen (die meistens von ZeroMQ abgedeckt werden) sind:
-
Unterstützung für 32/64 Bit * nix, Windows, MacOS.
-
Die 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 nativem Code.
-
Hohe Leistung.
-
Nicht virale Lizenz, keine GPL, AGPL etc.
-
Ich habe darüber nachgedacht, Thrift als Transportschicht über TCP (ich glaube, es unterstützt dies) mit Protokollpuffern zu verwenden, wenn seine Java-Implementierung für Messaging keine JNI verwendet.
Welche Optionen können Sie sich für dieses Setup anders als ZMQ vorstellen?