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的例子很容易测试通过,不赘述
zeromq:c,c++,golang及nodejs使用的更多相关文章
- 关于协程:nodejs和golang协程的不同
nodejs和golang都是支持协程的,从表现上来看,nodejs对于协程的支持在于async/await,golang对协程的支持在于goroutine.关于协程的话题,简单来说,可以看作是非抢占 ...
- golang后台任务库
功能需求 本来想用linux自带的corntab,然而corn调试困难,而且不支持以下需求 能分布式 有http接口 能调试 有统计 kala 这个需求也不算小众,于是在网上查了一下,果然有,而且还比 ...
- 为什么golang的开发效率高(编译型的强类型语言、工程角度高、在开发上的高效率主要来自于后发优势,编译快、避免趁编译时间找产品妹妹搭讪,既是强类型语言又有gc,只要通过编译,非业务毛病就很少了)
作者:阿猫链接:https://www.zhihu.com/question/21098952/answer/21813840来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...
- 聚光灯下的熊猫TV技术架构演进
2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...
- 我的Shell + VIM配置
1. 安装powerline-shell 下载powerline-shell # cd /opt/ # git clone https://github.com/milkbikis/powerline ...
- 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进
2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...
- java、ruby、python、php等如何生成excel文档?
excel在我们日常工作生活中会经常用到,通常我们都是用office软件去编写文档.但是对于格式一致的excel文档,如果还是使用人工完成,那绝不是我们软件工程师的姿态了~ 下面我就介绍一种方法,不需 ...
- Build Telemetry for Distributed Services之Open Telemetry来历
官网:https://opentelemetry.io/ github:https://github.com/open-telemetry/ Effective observability requi ...
- python、java、ruby、node等如何提取office文档中的内容?
我相信大家都有过这样的需求,把doc.ppt.excel.pdf.txt中的文本内容提取出来.提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等.在度娘上搜索“如何提取文档内容”,确实有 ...
随机推荐
- css中clearfix清除浮动的用法及其原理示例介绍
clearfix的定义: .clearfix:after {}{ content: "."; /**//*内容为“.”就是一个英文的句号而已.也可以不写.*/ display: b ...
- Javascript常用方法函数收集(二)
Javascript常用方法函数收集(二) 31.判断是否Touch屏幕 function isTouchScreen(){ return (('ontouchstart' in window) || ...
- Android开源框架:Universal-Image-Loader解析(二)MemoryCache
- Hadoop入门系列一
作者:Aitian Ma链接:https://www.zhihu.com/question/24965053/answer/102858134来源:知乎著作权归作者所有,转载请联系作者获得授权. Ha ...
- 电脑重装系统后如何恢复Mysql数据库
电脑重装系统后如何恢复Mysql数据库 一.[设置mysql的path]
- u-boot学习笔记(一):基础概念
1.U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.U-Boot的作用是系统引导.U-Boot从FADSROM.8xxROM.PPCBOOT逐步发展演化 ...
- RSS阅读器python实现概述
这边简单说一下最近倒腾的RSS阅读器的小东东,RSS阅读器估计很多人用过或者自己动手实现过.首先wudagang0123多年前提供的一个示例:http://bbs.chinaunix.net/foru ...
- BaseDao代码,用于连接数据库实行增删改查等操作
在学习JavaWeb时会用到此代码,用于实行增删改查操作 1 package com.bdqn.dao; import java.sql.Connection; import java.sql.Dri ...
- Shell 编写准则
Shell 中备注符号: # 或者 " 作为Shell中的备注符号. 需要注意的是,首行的#!/bin/bash 不是注释 Shell 格式 首行输入 #!/bin/bash 中间输入运行 ...
- zynq中uboot的qspi启动报错及解决办法
问题描述: 用u-boot-xlnx-v2016.3版本编译的uboot通过qspi flash启动出现如下错误: 尝试在uboot命令行输入"sf probe 0 0 0"挂载q ...