史上最快python 异步消息队列zeromq 简介
2016-04-29 12:01
555 查看
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,只写一份
是一个有着青春和朝气的项目,可惜网站被和谐了
高吞吐,低延时,超乎你的想象.
Ø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,只写一份
相关文章推荐
- 使用Python进行多进程编程
- Python实现包含min函数的栈
- Python爬虫实战:百度贴吧—妈妈吧
- Python二叉搜索树与双向链表转换实现方法
- python中使用fork创建新的进程
- 游戏运维通用python简易脚本
- Python实现简单字典树的方法
- Python编码介绍——encode和decode
- Python自动化运维工具fabric的安装
- python3 + Django 学习之路(一)
- 解决fatal error: Python.h: No such file or directory
- python正则表达式
- python中使用epoll开发服务端程序
- Python的Urllib库的使用(爬虫基础)
- Python中操作符重载用法分析
- 利用百度地图API制作城中心交通时空圈
- Python中绑定与未绑定的类方法用法分析
- python&DBA遍历文件夹下ip名称SQL 执行该IP下SQL
- python超简单的web服务器
- Python 模块学习 logging