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

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,只写一份
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值