zeromq的三种简单模式(python实现)

简介

ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ 的明确目标是“成为标准网络协议栈的一部分,之后进入 Linux 内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD 套接字之上的一层封装。ZMQ 让编写高性能网络应用程序极为简单和有趣。

zeromq 并不是类似rabbitmq消息列队,它实际上只一个消息列队组件,一个库。

zeromq的几种模式

Request-Reply模式:

客户端在请求后,服务端必须回响应 943117-20160705143136264-1243355308.png Python实现: server端:

client端:

输出:

Publish-Subscribe模式:

广播所有client,没有队列缓存,断开连接数据将永远丢失。client可以进行数据过滤。 943117-20160705143357999-601098470.png

Python实现 server端:

client端1:

client端2:

输出:

Parallel Pipeline模式:

由三部分组成,push进行数据推送,work进行数据缓存,pull进行数据竞争获取处理。区别于Publish-Subscribe存在一个数据缓存和处理负载。

当连接被断开,数据不会丢失,重连后数据继续发送到对端。 943117-20160705143418983-31884127.png

Python实现

server端:

work端:

client端:

输出结果:

 

https://segmentfault.com/a/1190000012010573