Ale*_*ard 20 java message-queue zeromq
我正在调查zeromq作为java项目中的消息传递解决方案,但我发现有关java绑定的说明有点难以理解. http://www.zeromq.org/bindings:java
我不熟悉java绑定,所以这些可能是愚蠢的问题,但有人可以帮助我理解:
我觉得zeromq上提供的说明需要熟悉构建我缺乏的C项目,所以也许我只是在密集,但这似乎很多工作.
Gui*_*one 26
作为ZeroMQ Java绑定的同伴,我表示同情.ZeroMQ绝对是要管理的更具挑战性的Java依赖项之一.在它的核心,ZeroMQ是本机C代码,Java绑定是围绕到核心ZeroMQ库的JNI接口的(相对)轻量级包装,这就是部署复杂的原因.
顺便说一句 - 如果ZeroMQ非常适合您的应用程序,那么它非常值得一试,因为它确实没有什么比这更好的了.不幸的是,这意味着您需要完成所有这些步骤才能使其正常工作,以便您可以决定它是否是您真正需要的.
ZeroMQ for Java基于三个组件:
我在一台机器上构建的罐子可以在另一个系统上运行吗?我需要这个应用程序是可移植的.
是.罐子是便携式的.您可以在任何计算机上构建它并将其部署在任何其他计算机上.不过这很容易.困难的部分是创建所需的各种DLL,这些DLL不可移植.假设你想支持Windows,Mac和Fedora Linux.您将需要Windows,Mac和Fedora上的本机开发环境,并为您要支持的每个平台构建DLL.
我对Linux的了解不足以说明构建在一个发行版(比如Fedora)上的DLL是否会在另一个发行版上运行(比如说Debian).如果没有,那么你还有更多的工作要做.
无论如何,您的应用程序将是可移植的 - ZeroMQ和JZMQ可以在大量平台上运行 - 但您需要严格控制部署过程,以确保在安装每个平台时,jar和适当的DLL集合都是已安装,并且它们安装在正确的位置.
为什么我需要安装任何东西?
从技术上讲,你没有.但我认为他们建议这样做,make install以便包含和库文件是编译器所期望的位置,以便Java可以在运行程序时加载它们.
如果是这样,为什么我要开始建立自己的罐子?
我不是提交者所以我不能肯定地说.我希望它的一部分是开发人员效率 - 他们宁愿改进代码而不是为可以自己创建jar的用户创建jar.
更重要的是 - 由于罐子不够而且你必须构建DLL,所以将jar和DLL组合起来更有意义.这样您就可以确定JNI包装器具有在C中实现的正确本机方法,以匹配Java包装器类中的本机声明.
祝好运.希望这可以帮助.