关于ZeroMQ 三种模式python3实现方式
Python  /  管理员 发布于 7年前   415
ZeroMQ是一个消息队列网络库,实现网络常用技术封装。在C/S中实现了三种模式,这段时间用python简单实现了一下,感觉python虽然灵活。但是数据处理不如C++自由灵活。
Request-Reply模式:
客户端在请求后,服务端必须回响应
server:
# -*-coding:utf-8 -*-import zmq context = zmq.Context()socket = context.socket(zmq.REP)socket.bind("tcp://*:5555")while True: message = socket.recv() print (message) socket.send("server response!".encode('utf-8'))
clinet:
# -*-coding:utf-8 -*-import zmqimport syscontext = zmq.Context()socket = context.socket(zmq.REQ)socket.connect("tcp://localhost:5555")while(True): data = input("input your data:") if data == 'q': sys.exit() print(data) socket.send(data.encode('utf-8')) response = socket.recv(); print (response)
Publish-Subscribe模式:
广播所有client,没有队列缓存,断开连接数据将永远丢失。client可以进行数据过滤。
server:
# -*-coding:utf-8 -*-import zmq context = zmq.Context() socket = context.socket(zmq.PUB) socket.bind("tcp://127.0.0.1:5000") while True: data = input('input your data:') socket.send(data.encode('utf-8'))
clinet:
# -*-coding:utf-8 -*-import timeimport zmq context = zmq.Context() socket = context.socket(zmq.SUB) socket.connect("tcp://127.0.0.1:5000") socket.setsockopt(zmq.SUBSCRIBE, ''.encode('utf-8')) while True: print(socket.recv())
Parallel Pipeline模式:
由三部分组成,push进行数据推送,work进行数据缓存,pull进行数据竞争获取处理。区别于Publish-Subscribe存在一个数据缓存和处理负载。
当连接被断开,数据不会丢失,重连后数据继续发送到对端
server:
# -*-coding:utf-8 -*-import zmqcontext = zmq.Context()recive = context.socket(zmq.PULL)recive.connect('tcp://127.0.0.1:5558')while True: data = recive.recv() print(data)
work:
# -*-coding:utf-8 -*-import zmqcontext = zmq.Context()recive = context.socket(zmq.PULL)recive.connect('tcp://127.0.0.1:5557')sender = context.socket(zmq.PUSH)sender.connect('tcp://127.0.0.1:5558')while True: data = recive.recv() print(data) sender.send(data)
clinet:
# -*-coding:utf-8 -*-import zmqimport timecontext = zmq.Context()socket = context.socket(zmq.PUSH)socket.bind('tcp://*:5557')while True: data = input('input your data:') print(data) socket.send(data.encode('utf-8'))
以上这篇关于ZeroMQ 三种模式python3实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号