zoukankan      html  css  js  c++  java
  • ZeroMQ安装说明

    ZeroMQ安装说明

    1.   安装

    1.1.Linux zmq安装

    安装过程参考地址:http://zeromq.org/intro:get-the-software的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/libzmq下载源码得到压缩包libzmq-master.zip(可以使用git工具下载)

    (git clone https://github.com/zeromq/libzmq)

    2.         安装cmake     autoconf          automake         libtool等工具;

    3.         libzmq-master.zip传入系统中,执行以下命令;

             unzip libzmq-master.zip

             mv libzmq-master.zip libzmq

             cd libzmq

             ./autogen.sh && ./configure && make -j 4

             make check && make install && sudo ldconfig

    这样就安装在了目录/usr/local下了,可以在/usr/local/lib下找到动态库,可以在/usr/local/include下找到头文件。

    1.2.Linux CZMQ安装

    安装过程参考地址:http://api.zeromq.org/czmq3-0:czmq的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/czmq下载源码,得到压缩包czmq-master.zip(可以使用git工具下载)

    (git clone https://github.com/zeromq/czmq)

    2.         安装cmake     autoconf          automake         libtool等工具;

    3.         czmq-master.zip传入系统中,执行以下命令;

    unzip czmq-master.zip

    mv czmq-master czmq

    cd czmq

    ./autogen.sh

    ./configure

    如果报以下错误:

    checking for zmq_init in -llibzmq... no

    configure: error: cannot link with -lzmq, install libzmq

    则修改文件configure,将文件中的lllibzmq替换为lzmq,再次执行./configure

    4.         执行make,再执行make check,切换到root用户,执行make install,执行ldconfig,安装完成。

    安装完成后,czmq安装在了/usr/local下,可以在/usr/local/lib下找到动态库,可以在/usr/local/include下找到头文件。

     

    1.3.Windows zmq安装

    安装过程参考地址:http://zeromq.org/intro:get-the-software的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/libzmq下载源码,得到压缩包libzmq-master.zip(可以使用git工具下载)

    2.         解压缩libzmq-master.zip文件,得到文件夹libzmq-master,修改libzmq-master目录名为libzmq

    3.         在目录/libzmq/builds/msvc下存在脚本文件configure.bat,在CMD下执行这个脚本文件;

    4.         用相应的VS打开目录/libzmq/builds/msvc/下对应目录下的项目,编译,就生出动态库。

    生成的库在目录libzmqinWin32Debugv120dynamic下,头文件在目录libzmqinclude下。

     

    1.4.Windows jzmq安装(32)

    l  安装jzmq必须首先安装zmq

    l  安装过程参考地址:http://zeromq.org/bindings:java的说明

    l  安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/jzmq下载源码,得到压缩包jzmq-master.zip(可以使用git工具下载)

    2.         解压缩jzmq-master.zip文件,得到文件夹jzmq-master,修改jzmq-master目录名为jzmq

    3.         在目录jzmqjzmq-jniuildsmsvc目录下用vs打开msvc.sln,修改配置:

    a)         在项目jzmp上右击,选择“属性”;在“jzmq属性页”中点击“配置管理器”,选择“平台”为“Win32”,点击关闭。

    b)         选择"VC++ 目录”, 将以下目录添加到包含目录

             <jdk>includewin32

             <jdk>include

             <zeromq>include

    c)         将以下目录添加到库目录

                       <zeromq>lib

                       编译错误:

                       错误         1       error C1083: 无法打开包括文件: config.hpp: No such file or directory         c:userslenovojzmqjzmq-jnisrcmainc++jzmq.hpp 23     1       jzmq

                       解决方法:在目录 jzmq下搜索文件jzmq.hpp,然后将文件所在的目录添加到项目的包含目录

                       错误         2       copy ..config.hpp ......srcmainc++

              javac ......srcmainjavaorgzeromqMQ.java ......srcmainjavaorgzeromqMQException.java ......srcmainjavaorgzeromqMQForwarder.java ......srcmainjavaorgzeromqMQQueue.java ......srcmainjavaorgzeromqUtils.java ......srcmainjavaorgzeromqMQStreamer.java ......srcmainjavaorgzeromqEmbeddedLibraryTools.java ......srcmainjavaorgzeromqApp.java ......srcmainjavaorgzeromqContext.java ......srcmainjavaorgzeromqDispatcher.java ......srcmainjavaorgzeromqFrame.java ......srcmainjavaorgzeromqMsg.java

                       解决方法:在目录/jzmq下搜索上面相应的java源文件,将它们拷贝到目录目录jzmqjzmq-jnisrcmainjavaorgzeromq下。

                       然后编译,通过,在目录jzmqjzmq-jnilib下生产了jzmq.dllzmq.jar等文件。

    l  编译和运行:

                java -cp <jzmq>zmq.jar test.java

                libzmq.dlljzmq.dll拷贝到test.java运行目录,执行

                java -Djava.library.path=C:UserslenovoDesktop mp -classpath C:UserslenovoDesktop mpzmq.jar;.  test

    l  ecplise中使用

    a)         zmq.jar添加到系统环境变量CLASS_PATH

    b)         jzmq.dlllibzmq.dll所在的路径添加到系统环境变量PATH

    c)         ecplise的项目上右击,选择”Build Path”->”Configure Build Path”,点击”Java Build Path“,选择”Libraries”,选择“Add External JARs…”,添加zmq.jar

    1.5.Linux jzmq安装

    安装jzmq必须首先安装zmq

    安装过程参考地址:http://zeromq.org/bindings:java的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/jzmq下载源码,得到压缩包jzmq-master.zip(可以使用git工具下载)

    (git clone https://github.com/zeromq/jzmq)

    2.         解压缩jzmq-master.zip文件,得到文件夹jzmq-master,修改jzmq-master目录名为jzmq

    3.         进入目录jzmq,执行以下命令

    $ ./autogen.sh
    $ ./configure
    $ make
    $ make install

    4.         root权限执行ldconfig

    这样,jzmq就被安装在了/usr/local/目录下,libjzmq.so在目录/usr/local/lib下,zmq.jar在目录/usr/local/share/java/下。

    5.         修改java环境变量CLASSPATH,添加/usr/local/share/java/zmq.jar

    编译程序:
    javac hwclient.java
    运行程序:
    java -Djava.library.path=/usr/local/lib hwclient

    ZeroMQ安装使用说明

    1.   安装

    1.1.Linux zmq安装

    安装过程参考地址:http://zeromq.org/intro:get-the-software的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/libzmq下载源码得到压缩包libzmq-master.zip(可以使用git工具下载)

    (git clone https://github.com/zeromq/libzmq)

    2.         安装cmake     autoconf          automake         libtool等工具;

    3.         libzmq-master.zip传入系统中,执行以下命令;

             unzip libzmq-master.zip

             mv libzmq-master.zip libzmq

             cd libzmq

             ./autogen.sh && ./configure && make -j 4

             make check && make install && sudo ldconfig

    这样就安装在了目录/usr/local下了,可以在/usr/local/lib下找到动态库,可以在/usr/local/include下找到头文件。

    1.2.Linux CZMQ安装

    安装过程参考地址:http://api.zeromq.org/czmq3-0:czmq的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/czmq下载源码,得到压缩包czmq-master.zip(可以使用git工具下载)

    (git clone https://github.com/zeromq/czmq)

    2.         安装cmake     autoconf          automake         libtool等工具;

    3.         czmq-master.zip传入系统中,执行以下命令;

    unzip czmq-master.zip

    mv czmq-master czmq

    cd czmq

    ./autogen.sh

    ./configure

    如果报以下错误:

    checking for zmq_init in -llibzmq... no

    configure: error: cannot link with -lzmq, install libzmq

    则修改文件configure,将文件中的lllibzmq替换为lzmq,再次执行./configure

    4.         执行make,再执行make check,切换到root用户,执行make install,执行ldconfig,安装完成。

    安装完成后,czmq安装在了/usr/local下,可以在/usr/local/lib下找到动态库,可以在/usr/local/include下找到头文件。

     

    1.3.Windows zmq安装

    安装过程参考地址:http://zeromq.org/intro:get-the-software的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/libzmq下载源码,得到压缩包libzmq-master.zip(可以使用git工具下载)

    2.         解压缩libzmq-master.zip文件,得到文件夹libzmq-master,修改libzmq-master目录名为libzmq

    3.         在目录/libzmq/builds/msvc下存在脚本文件configure.bat,在CMD下执行这个脚本文件;

    4.         用相应的VS打开目录/libzmq/builds/msvc/下对应目录下的项目,编译,就生出动态库。

    生成的库在目录libzmqinWin32Debugv120dynamic下,头文件在目录libzmqinclude下。

     

    1.4.Windows jzmq安装(32)

    l  安装jzmq必须首先安装zmq

    l  安装过程参考地址:http://zeromq.org/bindings:java的说明

    l  安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/jzmq下载源码,得到压缩包jzmq-master.zip(可以使用git工具下载)

    2.         解压缩jzmq-master.zip文件,得到文件夹jzmq-master,修改jzmq-master目录名为jzmq

    3.         在目录jzmqjzmq-jniuildsmsvc目录下用vs打开msvc.sln,修改配置:

    a)         在项目jzmp上右击,选择“属性”;在“jzmq属性页”中点击“配置管理器”,选择“平台”为“Win32”,点击关闭。

    b)         选择"VC++ 目录”, 将以下目录添加到包含目录

             <jdk>includewin32

             <jdk>include

             <zeromq>include

    c)         将以下目录添加到库目录

                       <zeromq>lib

                       编译错误:

                       错误         1       error C1083: 无法打开包括文件: config.hpp: No such file or directory         c:userslenovojzmqjzmq-jnisrcmainc++jzmq.hpp 23     1       jzmq

                       解决方法:在目录 jzmq下搜索文件jzmq.hpp,然后将文件所在的目录添加到项目的包含目录

                       错误         2       copy ..config.hpp ......srcmainc++

              javac ......srcmainjavaorgzeromqMQ.java ......srcmainjavaorgzeromqMQException.java ......srcmainjavaorgzeromqMQForwarder.java ......srcmainjavaorgzeromqMQQueue.java ......srcmainjavaorgzeromqUtils.java ......srcmainjavaorgzeromqMQStreamer.java ......srcmainjavaorgzeromqEmbeddedLibraryTools.java ......srcmainjavaorgzeromqApp.java ......srcmainjavaorgzeromqContext.java ......srcmainjavaorgzeromqDispatcher.java ......srcmainjavaorgzeromqFrame.java ......srcmainjavaorgzeromqMsg.java

                       解决方法:在目录/jzmq下搜索上面相应的java源文件,将它们拷贝到目录目录jzmqjzmq-jnisrcmainjavaorgzeromq下。

                       然后编译,通过,在目录jzmqjzmq-jnilib下生产了jzmq.dllzmq.jar等文件。

    l  编译和运行:

                java -cp <jzmq>zmq.jar test.java

                libzmq.dlljzmq.dll拷贝到test.java运行目录,执行

                java -Djava.library.path=C:UserslenovoDesktop mp -classpath C:UserslenovoDesktop mpzmq.jar;.  test

    l  ecplise中使用

    a)         zmq.jar添加到系统环境变量CLASS_PATH

    b)         jzmq.dlllibzmq.dll所在的路径添加到系统环境变量PATH

    c)         ecplise的项目上右击,选择”Build Path”->”Configure Build Path”,点击”Java Build Path“,选择”Libraries”,选择“Add External JARs…”,添加zmq.jar

    1.5.Linux jzmq安装

    安装jzmq必须首先安装zmq

    安装过程参考地址:http://zeromq.org/bindings:java的说明

    安装步骤如下(在安装时参考安装包中的REDEME)

    1.         https://github.com/zeromq/jzmq下载源码,得到压缩包jzmq-master.zip(可以使用git工具下载)

    (git clone https://github.com/zeromq/jzmq)

    2.         解压缩jzmq-master.zip文件,得到文件夹jzmq-master,修改jzmq-master目录名为jzmq

    3.         进入目录jzmq,执行以下命令

    $ ./autogen.sh
    $ ./configure
    $ make
    $ make install

    4.         root权限执行ldconfig

    这样,jzmq就被安装在了/usr/local/目录下,libjzmq.so在目录/usr/local/lib下,zmq.jar在目录/usr/local/share/java/下。

    5.         修改java环境变量CLASSPATH,添加/usr/local/share/java/zmq.jar

    编译程序:
    javac hwclient.java
    运行程序:
    java -Djava.library.path=/usr/local/lib hwclient

    2.   使用

    2.1.手册

    api中文翻译手册请参考http://www.cnblogs.com/fengbohello/p/4230135.html(中文翻译的)

    api原版http://api.zeromq.org/4-0:zmq

    java原版手册http://zeromq.github.io/jzmq/javadocs/java的使用说明也可以参考中文翻译的api,接口是相似的

    使用方法参考:《ZeroMQ 云时代极速消息通信库 PDF电子书下载 带书签目录 完整版.pdf》,这本书提供了示例,包含N种语言,可以从https://github.com/imatix/zguide/tree/master/examples获取。

    2.2.串行的请求/响应

     

    1串行的请求/响应

    参考hwserver.chwclient.c

    常见请求/响应合法组合

                       REQ           ->      REP

                       DEALER    ->      REP

                       REQ           ->      ROUTER

                       DEALER    ->      ROUTER

                       DEALER    ->      DEALER    很难使用

                       ROUTER   ->      ROUTER   很难使用

    2.3.订阅/发布

     

    2订阅/发布

    参考wuserver.cwuclient.c

    2.4.管道模式

     

    3管道模式

    参考tasksink2.ctasksink.ctaskvent.ctaskwork2.ctaskwork.c

    2.5.多套接字轮训

    参考mspoller.c

    2.6.代理订阅发布

     

    4代理订阅发布

    参考wuproxy.c

    2.7.代理请求应答

     

    5代理请求应答

    参考rrbroker.crrclient.crrworker.cmsgqueue.c

    2.8.传输桥接

     

    6传输桥接

    参考wuclient.cwuproxy.cwuserver.c

    2.9.中断信号处理

    参考interrupt.c

    2.10.      多线程请求/响应

    参考mtserver.c

    2.11.      线程间信令(PAIR套接字)

    参考mtrelay.c

    2.12.      零拷贝

    函数zmq_msg_init_data。不建议使用

    2.13.      发送空帧消息

    //发送一个空包

        zmq_msg_t msg;

        zmq_msg_init(&msg);

        if (zmq_msg_send(&msg, pfd, 0) < 0)

        {  

            zmq_msg_close(&msg);

            return -1;

        }  

    zmq_msg_close(&msg);

    2.14.      可靠的请求/应答模型——请求端

    l  仅当确信应答已经到达时,才轮训REQ套接字并接收它的应答;

    l  如果在超时时间内没有应答到达,则重新发送一个请求;

    l  如果多次请求后还是没有应答,则放弃事物。

     

    7可靠的请求/应答模型——请求端

    参考lpclient.c

    3.   出错与注意事项

    3.1.常见出错原因

     

    8常见出错原因

    3.2.zmq_msg_data(&request)不能直接用%s直接打印

    3.3.结构体zmq_msg_t必须使用系统提供的函数操作

    3.4.不要在创建套接字的线程外使用或者关闭该套接字

    3.5.永远不要把一个zmq_msg_t对象初始化两次

    zmq_msg_init()zmq_msg_init_data()zmq_msg_init_size()这三个函数是互斥的,对一个zmq_msg_t对象只能调用一个。

    3.6.zmq_msg_t对象在调用函数zmq_msg_send后会被改变

     

  • 相关阅读:
    【Linux基础总结】Linux基本环境
    mysql 源码安装
    windows内存映射文件
    TCHAR和CHAR类型的互转
    删除链表中重复的结点
    iptables防火墙
    两个链表的第一个公共结点
    无人值守安装linux系统
    dns服务 很多问题,后续再研究
    string 类型转换
  • 原文地址:https://www.cnblogs.com/langqi250/p/7283691.html
Copyright © 2011-2022 走看看