分享

史上最快 异步消息队列zeromq 简介 - 张沈鹏,在路上... - JavaEye技术网站

 ShangShujie 2010-08-22


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

http://www./

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./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,只写一份
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”,望解答,谢谢

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多