ZeroMQ有哪些替代方案可以移动协议缓冲区有效负载?

时间:2012-04-14 18:56:46

标签: java c++ rpc protocol-buffers zeromq

目前我有一个使用ZeroMQ交换协议缓冲区有效负载的解决方案。 序列化的协议缓冲区方法必须保持不变,但我可以用更方便的选项替换ZMQ。 我对ZMQ不满意的事情是:

它在Java方面使用JNI,在复杂的多线程场景中我被JNI咬过。我尽力消除它。

我不需要排队,我只需要rpc。

我的要求(主要由ZeroMQ涵盖)是:

  • 支持32/64位* nix,Windows,MacOS。

  • 主要支持Java,C ++和C#,Python,Ruby等也不错。

  • 语言支持必须由语言中的本机实现提供,而不是通过包装本机代码。

  • 高绩效。

  • 非病毒许可证,无GPL,AGPL等。

  • 如果用于消息传递的Java实现不使用JNI,我一直在考虑使用Thrift作为TCP上的传输层(我猜它支持它)和协议缓冲区有效负载。

除了ZMQ之外,您还可以考虑哪些选项进行此设置?

3 个答案:

答案 0 :(得分:11)

你应该看看Netty。它是一个高性能的Java NIO服务器框架,内置支持Protocol Buffer,它是根据Apache License的条款发布的。框架很好documented,有些examples显示了如何使用Protocol Buffers原型协议。

答案 1 :(得分:8)

您是否考虑过StormSpread之类的内容?

答案 2 :(得分:0)

最初的问题是在JeroMQ被放到github上一年之后被问到的。它是ZeroMQ的纯java实现。在整个过程中,它一直在不断发展,似乎{C}实施comparable in speed