关于ZeroMQ 三种模式python3实现方式


Posted in Python onDecember 23, 2019

ZeroMQ是一个消息队列网络库,实现网络常用技术封装。在C/S中实现了三种模式,这段时间用python简单实现了一下,感觉python虽然灵活。但是数据处理不如C++自由灵活。

Request-Reply模式:

客户端在请求后,服务端必须回响应

关于ZeroMQ 三种模式python3实现方式

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 zmq
import sys

context = 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可以进行数据过滤。

关于ZeroMQ 三种模式python3实现方式

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 time
import 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存在一个数据缓存和处理负载。

当连接被断开,数据不会丢失,重连后数据继续发送到对端

关于ZeroMQ 三种模式python3实现方式

server:

# -*-coding:utf-8 -*-

import zmq

context = 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 zmq

context = 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 zmq
import time

context = 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实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
对Python实现简单的API接口实例讲解
Dec 10 Python
Python列表list排列组合操作示例
Dec 18 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
django fernet fields字段加密实践详解
Aug 12 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 Python
Python新手学习函数默认参数设置
Jun 03 Python
Python语言编写智力问答小游戏功能
Oct 13 Python
python中的被动信息搜集
Apr 29 Python
Python 内置函数globals()和locals()对比详解
Dec 23 #Python
Python 项目转化为so文件实例
Dec 23 #Python
python 解决cv2绘制中文乱码问题
Dec 23 #Python
python 实现查询Neo4j多节点的多层关系
Dec 23 #Python
python 多进程队列数据处理详解
Dec 23 #Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 #Python
python读取ini配置文件过程示范
Dec 23 #Python
You might like
基于mysql的bbs设计(一)
2006/10/09 PHP
php编写一个简单的路由类
2011/04/13 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
详解python metaclass(元类)
2020/08/13 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
Python 实现一个简单的web服务器
2021/01/03 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
社区八一活动方案
2014/02/03 职场文书
人力资源主管职责范本
2014/03/05 职场文书
高中学生期末评语
2014/04/25 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
银行转正自我鉴定
2014/09/29 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
Python实现学生管理系统(面向对象版)
2021/06/24 Python