史上最快 异步消息队列zeromq 简介 - 张沈鹏,在路上... - JavaEye技术网站
来源:百度文库 编辑:神马文学网 时间:2024/04/28 00:24:51
史上最快 异步消息队列zeromq 简介
文章分类:Java编程是的,我喜欢Z开头的东西.
http://www.zeromq.org/
zeromq是一个基于内存的消息队列
是一个有着青春和朝气的项目,可惜网站被和谐了
高吞吐,低延时,超乎你的想象.
ØMQ is already very fast. We're getting 13.4 microseconds end-to-endlatencies 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 offloadfor 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
然后程序中就可以不用写端口了
5.
本质上,
zmq_server是一个消息分发系统
创建一个exchange 然后往中queue写东西
data distribution的方式是每一个queue写一份数据
Load balancing的方式是轮训的写queue,只写一份苏洵《项籍》|备忘logrotate和supervise
- 21:40
- 浏览 (4023)
- 评论 (4)
- 分类: Python
setPYTHONPATH=/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 namedlibpyzmq”,望解答,谢谢
也遇到这问题了,除了OS,错误完全一致。
CentOSx64, configure 时指定了 --prefix=/usr/local/zmq
安装完成后,site-packages 目录里也有libpyzmq.a libpyzmq.dylib libpyzmq.la 三个文件; import libpyzmq 报错"ImportError: No module named libpyzmq "..
3 楼useless2009-11-27 引用cm2355 写道请教一个问题,我在Mac os下安装zeromq,编译选项里已经加了--with-python
安装完成后,site-packages目录里也有libpyzmq.a libpyzmq.dylib libpyzmq.la这三个文件,但是import libpyzmq总是报错“ImportError: No module namedlibpyzmq”,望解答,谢谢
也遇到这问题了,除了OS,错误完全一致。
CentOS x64, configure 时指定了 --prefix=/usr/local/zmq
安装完成后,site-packages 目录里也有 libpyzmq.a libpyzmq.dylib libpyzmq.la三个文件; import libpyzmq 报错 "ImportError: No module named libpyzmq "..2 楼zuroc2009-05-17 引用不清楚
发邮件到他们的列表中问吧1 楼cm23552009-05-13 引用请教一个问题,我在Macos下安装zeromq,编译选项里已经加了--with-python
安装完成后,site-packages目录里也有libpyzmq.a libpyzmq.dylib libpyzmq.la这三个文件,但是importlibpyzmq总是报错“ImportError: No module named libpyzmq”,望解答,谢谢
史上最快 异步消息队列zeromq 简介 - 张沈鹏,在路上... - JavaEye技术网站
Flare-兼容Memcached协议的分布式key/value存储系统 - 张沈鹏,在路上... - JavaEye技术网站
收藏一个函数 用来做推荐可以用 - 张沈鹏,在路上... - JavaEye技术网站
PowerDesigner UML 建模简介 - - JavaEye技术网站
protocol buffer 简介 - kimi - JavaEye技术网站
潮州韩文公庙碑〔〔宋〕苏轼〕 - 在路上 - JavaEye技术网站
Java使用starling分布式消息队列异步处理事务
基于Ext异步加载tree的实例 - Seraph115 - JavaEye技术网站
Spring七大模块简介 - ljbal - JavaEye技术网站
WAS6.1在Linux上的安装 - Axiseed - JavaEye技术网站
卡布奇诺 - JavaEye技术网站
linux上配置vpn - lifeneedyou - JavaEye技术网站
深入浅出 java代理机制 - 分享知识是进步最快的捷径 - JavaEye技术网站
在Ubuntu上装Hadoop - fuliang - JavaEye技术网站
在linux服务器新建Oracle database - - JavaEye技术网站
Dom4j下载及使用Dom4j读写XML简介 - - JavaEye技术网站
关于消息和消息队列
JSTL使用 - - JavaEye技术网站
enum用法 - - JavaEye技术网站
ant 安装 - - JavaEye技术网站
windows消息队列
负载均衡技术 - - JavaEye技术网站
吃饭时在思考线程问题 - gavin每天在进步 - JavaEye技术网站
ruby gems 安装不上 配置gem 源 - 夜鸣猪的RubyOnRails空间 - JavaEye技术网站