zeromq:c,c++,golang及nodejs使用


官網:www.zeromq.org

消息隊列比較:http://www.cnblogs.com/charlesblc/p/6058799.html

zeromq的一些觀點:http://www.cnblogs.com/my_life/articles/5293176.html

1.ZeroMQ是一個程序庫,rabbitmq則是消息服務器
2.ZeroMQ是面向消息,而socket是面向字節流,zeromq本身會保證消息完整性
3.zeromq你不必考慮I/O與程序阻塞、異步這些麻煩事,zeromq使用無鎖的隊列完成異步I/O
4.zeromq具有可以緩存消息的異步隊列,必要時可以把消息緩存到磁盤
5.生產中會遇到各種路由問題,一對多、多對一、多對多的路由,zeromq提供靈活的現成模式供組合

zeromq不能只看做socket封裝,它改變了tcp/udp只能一對一通信模式

 

參考文章:http://www.cnblogs.com/rainbowzc/p/3357594.html

 

 

(1)linux: c,c++核心:https://github.com/zeromq/libzmq

這里面可以下載libzmq-4.2.0.tar.gz和zeromq-4.2.0.tar.gz,兩個都是zmq的源碼,但前者貌似沒有編譯腳本,所以使用后者

tar zxf zeromq-4.2.0.tar.gz 
cd zeromq-4.2.0/
./configure 
make
sudo make install

頭文件在:/usr/local/include;lib文件在:/usr/local/lib

 

(2)linux: c語言測試例程(c語言接口:http://api.zeromq.org):

http://www.cnblogs.com/kaishan1990/p/5636332.html

上面的例子,client/server啟動先后順序沒關系,但和server斷開后,client不會自動重新連接

c++有封裝http://zeromq.org/bindings:cpp,實際這個項目很少有人用

 

(3)golang

http://zeromq.org/bindings:go

https://github.com/pebbe/zmq4

執行:go get github.com/pebbe/zmq4

linux上很容易過,但windows要小折騰一下,以下方框內:

a.下載tdm64-gcc-5.1.0-2.exe

b.cd zeromq-4.2.0\builds\mingw32

c.make -f Makefile.mingw32不通過

4.編輯Makefile.mingw32,加入gather.o scatter.o dgram.o

5.生成的libzmq.dll.a拷貝到C:\TDM-GCC-64\lib

6.生成的libzmq.dll拷貝到C:\TDM-GCC-64\bin

6.zeromq-4.2.0\include下的文件拷貝到C:\TDM-GCC-64\include

 

 

下面測試demo:

cd src\github.com\pebbe\zmq4\examples

go build hwclient.go

go build hwserver.go

分別運行2個exe文件

 

(4)node.js

 http://zeromq.org/bindings:node-js

例子在:https://github.com/JustinTulloss/zeromq.node

Push/Pull的例子很容易測試通過,不贅述

 


免責聲明!

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



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