目前我有一个使用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 回答
你考虑过像Storm或Spread这样的东西吗?
你应该看看Netty . 它是一个高性能的Java NIO服务器框架,内置支持Protocol Buffer,它是根据Apache License的条款发布的 . 该框架很好documented和一些examples展示如何使用Protocol Buffers原型协议 .
最初的问题是在JeroMQ被放到github上一年之后被问到的 . 它是ZeroMQ的纯java实现 . 在整个过程中,它一直在不断发展,似乎是对C实施的持续发展 .