`
zuroc
  • 浏览: 1290083 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

史上最快 异步消息队列zeromq 简介

阅读更多


是的,我喜欢Z开头的东西.

http://www.zeromq.org/

zeromq是一个基于内存的消息队列

是一个有着青春和朝气的项目,可惜网站被和谐了

高吞吐,低延时,超乎你的想象.
ØMQ is already very fast. We're getting 13.4 microseconds end-to-end latencies and up to 4,100,000 messages a second today.

支持python,java,php,.net等各种语言

支持windows,linux和各种平台

zeromq性能很好,单纯的发简单的小文本消息和python的函数调用一样快(归功于他的本机服务).

在最新的版本中,加入了

April 8th, 2009: ØMQ/0.6 is available.
This version introduces load-balancing capabilities, on-disk offload for the large queues.

其中
on-disk offload for the large queues
这个特性的很让人喜欢的,可以避免内存被烧完.
(   更多细节见 http://www.zeromq.org/whitepapers:design-v06 )

给出一点代码演示

1.启动 zmq_server

nohup zmq_server --port 5300&
(默认端口是 5682)

2.发送请求端

import sys
from datetime import datetime
import libpyzmq
import time

z = libpyzmq.Zmq (host = "127.0.0.1:5300")

eid = z.create_exchange (
    name = 'EL',
    scope = libpyzmq.SCOPE_LOCAL,
    style = libpyzmq.STYLE_LOAD_BALANCING
)
z.bind ('EL', 'QG')

while True:
    z.send (eid, str(time.time()), True)
    time.sleep (1)

3.响应请求端
import libpyzmq
z = libpyzmq.Zmq (host = "127.0.0.1:5300")
z.create_queue (name = 'QG', scope = libpyzmq.SCOPE_GLOBAL,location ="127.0.0.1:5350")
while True:
    print z.receive (True)


我们可以做一个实验,
在响应请求端运行到一半时,
中断这个程序
然后等一会在运行它.

我们可以发现,
消息没有丢失,
这要归功于伟大的zmq_server


4.SCOPE_GLOBAL的端口可以在一个配置文件中指定   
然后这样启动 zmq_server --config-file config.xml

<root>
    <node name = "my_exchange" location = "zmq.tcp://192.168.0.115:5556"/
</root>

然后程序中就可以不用写端口了

5.
本质上,
zmq_server是一个消息分发系统
创建一个exchange 然后往中queue写东西

data distribution的方式是每一个queue写一份数据
Load balancing的方式是轮训的写queue,只写一份
2
0
分享到:
评论
6 楼 phlsbg 2010-10-06  
在win7下,vs2010编译为什么没有zmq_server.exe


我的bin目录有:
local_lat
local_thr
remote_lat
remote_thr
zmq_forwarder
zmq_queue
zmq_streamer

只有这些,难道是我的不对?
从官方的文档中似乎没有找到这些东西的说明呀。
5 楼 linkerlin 2010-09-13  
看上去不错。
不错暂时没有地方用。
这东西貌似用在Twitter类项目上不错。
4 楼 hansir 2009-12-10  
把libpyzmq.a所在的目录加入到PYTHONPATH中就应该可以了。
set PYTHONPATH=/usr/local/zmq/site-packages

我正在准备在项目中使用0MQ, 希望和大家探讨一下。

useless 写道
cm2355 写道
请教一个问题,我在Mac os下安装zeromq,编译选项里已经加了--with-python
安装完成后,site-packages目录里也有libpyzmq.a  libpyzmq.dylib  libpyzmq.la这三个文件,但是import libpyzmq总是报错“ImportError: No module named libpyzmq”,望解答,谢谢



也遇到这问题了,除了OS,错误完全一致。
CentOS x64, configure 时指定了 --prefix=/usr/local/zmq
安装完成后,site-packages 目录里也有 libpyzmq.a  libpyzmq.dylib  libpyzmq.la 三个文件; import libpyzmq 报错 "ImportError: No module named libpyzmq "..

3 楼 useless 2009-11-27  
cm2355 写道
请教一个问题,我在Mac os下安装zeromq,编译选项里已经加了--with-python
安装完成后,site-packages目录里也有libpyzmq.a  libpyzmq.dylib  libpyzmq.la这三个文件,但是import libpyzmq总是报错“ImportError: No module named libpyzmq”,望解答,谢谢



也遇到这问题了,除了OS,错误完全一致。
CentOS x64, configure 时指定了 --prefix=/usr/local/zmq
安装完成后,site-packages 目录里也有 libpyzmq.a  libpyzmq.dylib  libpyzmq.la 三个文件; import libpyzmq 报错 "ImportError: No module named libpyzmq "..
2 楼 zuroc 2009-05-17  
不清楚
发邮件到他们的列表中问吧
1 楼 cm2355 2009-05-13  
请教一个问题,我在Mac os下安装zeromq,编译选项里已经加了--with-python
安装完成后,site-packages目录里也有libpyzmq.a  libpyzmq.dylib  libpyzmq.la这三个文件,但是import libpyzmq总是报错“ImportError: No module named libpyzmq”,望解答,谢谢

相关推荐

    消息队列zeromq的go语言测试实例包

    消息队列zeromq的go语言测试实例包,为学习安装部署zeromq的同学提供,注意该安装包中的测试实例为go语言版本,要根据各位安装的zeromq版本下载。

    消息队列zeromq学习的安装包之一libsodium

    消息队列zeromq学习的安装包之一libsodium,为学习zeromq安装部署的同学们提供帮助,zeromq是消息队列中的一种技术,安装过程中要注意版本对应。

    消息队列zeromq的c语言安装包czmq-4.2.1版本

    消息队列zeromq的c语言安装包czmq-4.2.1版本,为学习安装部署zeromq的同学提供c语言版本的安装包,要注意跟zeromq的版本对应,否则后期会报错。

    消息队列zeromq4.1.8版本安装包

    消息队列zeromq4.1.8版本安装包,为学习安装zeromq的但不能上github.com同学提供,该安装包为github版,结合各位安装的语言版本要与其他安装包对应。

    zeromq消息队列

    zeromq消息队列

    ZeroMQ-一个基于内存的消息队列

    zeromq是一个基于内存的消息队列,支持windows,linux和各种平台,支持python,java,php,.net等各种语言。

    Zeromq的异步req/rep模式

    zeromq 的异步demo,简单描述zmq的事例

    zeromq教程

    ZeroMQ是一个很有个性的项目,它原来是定位为“史上最快消息队列”,所以名字里面有“MQ”两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消息内核,或者消息层了。从网络通信的角度看,它处于...

    zeromq-3.2.5.zip

    zeromq是史上最快的消息队列,是基于c#编程偶dll文件

    zeroMQ初体验

    并行计算框架zeroMQ,号称史上最快消息队列。

    ZeroMQ异步请求回应

    zeromq-v4.3.2 消息队列库 最新源代码

    ZeroMQ(简称ZMQ)是一个基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。

    ZeroMQ学习笔记_1234章

    ZeroMQ是一个很有个性的项目,它原来是定位为“史上最快消息队列”,所以名字里面有“MQ”两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消息内核,或者消息层了。从网络通信的角度看,它处于...

    c++的消息中间件zeromq

    史上最强大的消息中间件,30us内完成消息传递,兼容多平台,多语言,很好

    zeroMq 开发指南 消息库

    zeroMq 开发指南 消息通信库zeroMq 开发指南 消息通信库zeroMq 开发指南 消息通信库zeroMq 开发指南 消息通信库

    ZMQ/ZeroMQ使用手册

    ZeroMQ的用户手册,适合C++、Java、Go、Python等通过MQ订阅消息的形式进行通信,低延迟,支持多语言SDK;手册内包含了ZeroMQ的基础入门知识,适合新手学习;介绍了ZeroMQ的集中模式包括高级请求-应答模式; 手册目录...

    C# zeromq 功能实现

    C# zeromq 功能实现,最牛逼的消息队列,消息传输工具。

    zeromq 云时代极速消息通信库

    zeromq 云时代极速消息通信库, zeromq详细教程,学习高性能网络编程的好资料

    ZeroMQ云时代极速消息通信库PDF带书签目录高清版

    ZeroMQ云时代极速消息通信库PDF版本,带书签,完整目录,高清版。

    zeromq-4.1.4.zip

    ZeroMQ是一个开源的消息队列系统,按照官方的定义,它是一个消息通信库,帮助开发者设计分布式和并行的应用程序。 首先,我们需要明白,ZeroMQ不是传统的消息队列系统(比如ActiveMQ、WebSphereMQ、RabbitMQ等)。...

Global site tag (gtag.js) - Google Analytics