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

时间: 2024-08-25 15:31:34

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

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

nodejs和golang都是支持协程的,从表现上来看,nodejs对于协程的支持在于async/await,golang对协程的支持在于goroutine.关于协程的话题,简单来说,可以看作是非抢占式的轻量级线程. 协程本身 一句话概括,上面提到了 "可以看作是非抢占式的轻量级线程". 在多线程中,把一段代码放在一个线程中执行,cpu会自动将代码分成碎片,并在一定时间切换cpu控制权,线程通过锁机制确保自己使用的资源在cpu执行别的线程的代码时被修改(占用的内存堆栈.硬盘数据资源等)

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

2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时用户注册数量就达几十万,火爆程度可见一斑.笔者作为写下熊猫TV第二行代码的Coder,见证了熊猫TV成立以来的风风雨雨.直播技术坑不少,本文简单揭秘熊猫TV这一年的技术架构演进,分析各个阶段面临的主要问题和应对方案,给大家做直播系统提供一定的参考. 熊猫架构 0.1- 来不及了,老司机快上车 这个阶

Hyperledger:概念

架构概念: VSCC (Validation System Chaincode) Auditability(审计性):在一定权限和许可下,可以对链上的交易进行审计和检查. Block(区块):代表一批得到确认的交易信息的整体,准备被共识加入到区块链中. Blockchain(区块链):由多个区块链接而成的链表结构,除了首个区块,每个区块都包括前继区块内容的 hash 值. Certificate Authority(CA):负责身份权限管理,又叫 Member Service 或 Identit

Ruby的Fiber根本不是用来做并发的~

本来做了一个并发抓取,以为Ruby1.9以后添加的Fiber是类似于golang那种,可以实现并发运行,可是发现效率没有提高,为了确认Fiber是不是在并发执行,于是我做了一个这样的测试代码. 首先搞一个php文件: <?php $i = intval(isset($_GET['i']) ? $_GET['i'] : (!empty($argv[1]) ? $argv[1] : 0)); if($i>0){     sleep(5-$i); } echo $i, "\n";

python +ip2region IP库地址文件实现秒级查询1万不同ip归属地址

一.服务器环境介绍: 服务器硬件:4核4g内存服务器系统:centos6.9 x86_64位最小化安装 二.环境安装 参考地址:https://github.com/lionsoul2014/ip2region直接下载包到服务器上的/root目录下wget https://github.com/lionsoul2014/ip2region/archive/master.zipunzip解压unzip master.zip到此准备工作基本完成 以下都是github.com官网上的说明,我这边复制在

启动、配置、扩容、伸缩、存储,开普勒云平台之使用指南

本文从启动.配置.扩容.伸缩.存储等方面介绍如何使用开普勒云平台. 一.Kplcloud是什么? kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本. Kplcloud已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器. 一.登陆 登陆可以分为三种,分别是LDAP登陆.邮箱密码登陆.三方授权登陆,咱们没有注册功能.下面对这三种登陆方式进行讲解. LD

Hyperledger-fabric 环境搭建

Hyperledger-fabric 环境搭建 按着官方文档的步骤先配置前置环境 https://hyperledger-fabric.readthedocs.io/en/latest/prereqs.html Hyperledger fbric 1.4.5 Ubuntu 18.04 0. 配置下虚拟机网络 因为众所周知的原因,国内网络不是很通畅,使用魔法后设置允许局域网使用. 在wired settings中设置Network Proxy,全部指向本机的魔法端口 1. 安装git Instal

2017年的golang、python、php、c++、c、java、Nodejs性能对比[续]

2017年的golang.python.php.c++.c.java.Nodejs性能对比[续] 最近忙,这个话题放了几天,今天来个续集.   上篇传送门: 2017年的golang.python.php.c++.c.java.Nodejs性能对比(golang python php c++ java Nodejs Performance)   好了,上回的某些事有些人有异议,今天也回应下. 1.有人说python性能没那么Low? 这个我用pypy 2.7确认了下,确实没那么差, 如果用num

golang vs dlang vs nodejs vs php

这是我本机开的一个单核1G内存的Hyper-V虚拟机,首先我们使用的语言和框架版本给大家看一下: [email protected]:/home/zoujiaqing# go version go version go1.5.1 linux/amd64 [email protected]:/home/zoujiaqing# ldc2 --version LDC - the LLVM D compiler (0.15.0):   based on DMD v2.066.1 and LLVM 3.5