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/下對應目錄下的項目,編譯,就生出動態庫。

生成的庫在目錄\libzmq\bin\Win32\Debug\v120\dynamic下,頭文件在目錄\libzmq\include下。

 

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.         在目錄\jzmq\jzmq-jni\builds\msvc目錄下用vs打開msvc.sln,修改配置:

a)         在項目jzmp上右擊,選擇“屬性”;在“jzmq屬性頁”中點擊“配置管理器”,選擇“平台”為“Win32”,點擊關閉。

b)         選擇"VC++ 目錄”, 將以下目錄添加到包含目錄

         <jdk>\include\win32

         <jdk>\include

         <zeromq>\include

c)         將以下目錄添加到庫目錄

                   <zeromq>\lib

                   編譯錯誤:

                   錯誤         1       error C1083: 無法打開包括文件: config.hpp: No such file or directory         c:\users\lenovo\jzmq\jzmq-jni\src\main\c++\jzmq.hpp 23     1       jzmq

                   解決方法:在目錄\ jzmq下搜索文件jzmq.hpp,然后將文件所在的目錄添加到項目的包含目錄

                   錯誤         2       copy ..\config.hpp ..\..\..\src\main\c++\

          javac ..\..\..\src\main\java\org\zeromq\ZMQ.java ..\..\..\src\main\java\org\zeromq\ZMQException.java ..\..\..\src\main\java\org\zeromq\ZMQForwarder.java ..\..\..\src\main\java\org\zeromq\ZMQQueue.java ..\..\..\src\main\java\org\zeromq\Utils.java ..\..\..\src\main\java\org\zeromq\ZMQStreamer.java ..\..\..\src\main\java\org\zeromq\EmbeddedLibraryTools.java ..\..\..\src\main\java\org\zeromq\App.java ..\..\..\src\main\java\org\zeromq\ZContext.java ..\..\..\src\main\java\org\zeromq\ZDispatcher.java ..\..\..\src\main\java\org\zeromq\ZFrame.java ..\..\..\src\main\java\org\zeromq\ZMsg.java

                   解決方法:在目錄/jzmq下搜索上面相應的java源文件,將它們拷貝到目錄目錄\jzmq\jzmq-jni\src\main\java\org\zeromq\下。

                   然后編譯,通過,在目錄\jzmq\jzmq-jni\lib下生產了jzmq.dllzmq.jar等文件。

l  編譯和運行:

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

            libzmq.dlljzmq.dll拷貝到test.java運行目錄,執行

            java -Djava.library.path=C:\Users\lenovo\Desktop\tmp -classpath C:\Users\lenovo\Desktop\tmp\zmq.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/下對應目錄下的項目,編譯,就生出動態庫。

生成的庫在目錄\libzmq\bin\Win32\Debug\v120\dynamic下,頭文件在目錄\libzmq\include下。

 

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.         在目錄\jzmq\jzmq-jni\builds\msvc目錄下用vs打開msvc.sln,修改配置:

a)         在項目jzmp上右擊,選擇“屬性”;在“jzmq屬性頁”中點擊“配置管理器”,選擇“平台”為“Win32”,點擊關閉。

b)         選擇"VC++ 目錄”, 將以下目錄添加到包含目錄

         <jdk>\include\win32

         <jdk>\include

         <zeromq>\include

c)         將以下目錄添加到庫目錄

                   <zeromq>\lib

                   編譯錯誤:

                   錯誤         1       error C1083: 無法打開包括文件: config.hpp: No such file or directory         c:\users\lenovo\jzmq\jzmq-jni\src\main\c++\jzmq.hpp 23     1       jzmq

                   解決方法:在目錄\ jzmq下搜索文件jzmq.hpp,然后將文件所在的目錄添加到項目的包含目錄

                   錯誤         2       copy ..\config.hpp ..\..\..\src\main\c++\

          javac ..\..\..\src\main\java\org\zeromq\ZMQ.java ..\..\..\src\main\java\org\zeromq\ZMQException.java ..\..\..\src\main\java\org\zeromq\ZMQForwarder.java ..\..\..\src\main\java\org\zeromq\ZMQQueue.java ..\..\..\src\main\java\org\zeromq\Utils.java ..\..\..\src\main\java\org\zeromq\ZMQStreamer.java ..\..\..\src\main\java\org\zeromq\EmbeddedLibraryTools.java ..\..\..\src\main\java\org\zeromq\App.java ..\..\..\src\main\java\org\zeromq\ZContext.java ..\..\..\src\main\java\org\zeromq\ZDispatcher.java ..\..\..\src\main\java\org\zeromq\ZFrame.java ..\..\..\src\main\java\org\zeromq\ZMsg.java

                   解決方法:在目錄/jzmq下搜索上面相應的java源文件,將它們拷貝到目錄目錄\jzmq\jzmq-jni\src\main\java\org\zeromq\下。

                   然后編譯,通過,在目錄\jzmq\jzmq-jni\lib下生產了jzmq.dllzmq.jar等文件。

l  編譯和運行:

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

            libzmq.dlljzmq.dll拷貝到test.java運行目錄,執行

            java -Djava.library.path=C:\Users\lenovo\Desktop\tmp -classpath C:\Users\lenovo\Desktop\tmp\zmq.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后會被改變

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM