官网: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的例子很容易测试通过,不赘述

zeromq:c,c++,golang及nodejs使用的更多相关文章

  1. 关于协程:nodejs和golang协程的不同

    nodejs和golang都是支持协程的,从表现上来看,nodejs对于协程的支持在于async/await,golang对协程的支持在于goroutine.关于协程的话题,简单来说,可以看作是非抢占 ...

  2. golang后台任务库

    功能需求 本来想用linux自带的corntab,然而corn调试困难,而且不支持以下需求 能分布式 有http接口 能调试 有统计 kala 这个需求也不算小众,于是在网上查了一下,果然有,而且还比 ...

  3. 为什么golang的开发效率高(编译型的强类型语言、工程角度高、在开发上的高效率主要来自于后发优势,编译快、避免趁编译时间找产品妹妹搭讪,既是强类型语言又有gc,只要通过编译,非业务毛病就很少了)

    作者:阿猫链接:https://www.zhihu.com/question/21098952/answer/21813840来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...

  4. 聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

  5. 我的Shell + VIM配置

    1. 安装powerline-shell 下载powerline-shell # cd /opt/ # git clone https://github.com/milkbikis/powerline ...

  6. 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

  7. java、ruby、python、php等如何生成excel文档?

    excel在我们日常工作生活中会经常用到,通常我们都是用office软件去编写文档.但是对于格式一致的excel文档,如果还是使用人工完成,那绝不是我们软件工程师的姿态了~ 下面我就介绍一种方法,不需 ...

  8. Build Telemetry for Distributed Services之Open Telemetry来历

    官网:https://opentelemetry.io/ github:https://github.com/open-telemetry/ Effective observability requi ...

  9. python、java、ruby、node等如何提取office文档中的内容?

    我相信大家都有过这样的需求,把doc.ppt.excel.pdf.txt中的文本内容提取出来.提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等.在度娘上搜索“如何提取文档内容”,确实有 ...

随机推荐

  1. 火狐浏览器不能获取 event,解决js报错问题

    //←的keyCode等于:37 //→的keyCode等于:39 //↑的keyCode等于:38 //↓的keyCode等于:40 function keystoke(obj){ //var e ...

  2. 2016 - 1 - 27 javaScrip初步(一)

    <head> </head> <body> <!-- The onclick attribute is the code that happens when ...

  3. VBS非规范化参考手册(一)

    变量类型: 空型:NULL NULL 布尔型:BOOLEN true false 字节型:Byte 0~255 整形:INTEGER -32768~32767 长整形:LONG -2^32~2^31+ ...

  4. 关于jQuery外部框架

    (function(window, undefined) {         var jQuery = ...         ...             window.jQuery = wind ...

  5. Winscp sftp远程linux服务器需要预设密码,怎么解决

    需要在root账户下修改/etc/ssh/sshd_config 文件中PermitEmptyPasswords no改成yes

  6. linux和windows共享文件

    开发板的文档上说可以使用nfs共享文件夹,提供的命令如下: mount –t nfs –o nolock 192.168.1.244:/usr/ /mnt/ 因此我在我的win10上设了共享文件夹,然 ...

  7. iphone 浏览器自动解析数字为号码解决方法

    iphone 浏览器自动解析数字为号码解决方法 www.MyException.Cn  网友分享于:2015-10-09  浏览:0次   iphone 浏览器自动解析数字为号码解决办法 在工作中遇到 ...

  8. ThinkPHP BASE

      对于thinkphp 开源框架来说  是一个基于  模型/控制器/视图 的结构 V(View):视图接收来自用户操作的信息返回到 对应的控制器或方法 C (controller):控制器则调用 相 ...

  9. csv 文件用Excel打开乱码

    最近在做一个上传的功能,记录下自己的感受. 刚开始我用的是excel上传:但是发现客户服务器有用64位的,使用的时候程序会报错: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” ...

  10. React(JSX语法)-----JSX基本语法

    JSX------HTML tags vs React Components: 1.To render a html tag,just use lower-case tag names in JSX; ...