关于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 相关文章推荐
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
Python中__new__与__init__方法的区别详解
May 04 Python
Python sys.argv用法实例
May 28 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
tensorflow实现加载mnist数据集
Sep 08 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
python scipy卷积运算的实现方法
Sep 16 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
Python logging日志库空间不足问题解决
Sep 14 Python
python 如何实现遗传算法
Sep 22 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
生成卡号php代码
2008/04/09 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
js href的用法
2010/05/13 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
python中正则表达式的使用详解
2014/10/17 Python
python实现在windows下操作word的方法
2015/04/28 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python3 max()函数基础用法
2019/02/19 Python
Pytorch之Variable的用法
2019/12/31 Python
jupyter 导入csv文件方式
2020/04/21 Python
Python如何定义有默认参数的函数
2020/08/10 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
美国羊皮公司:Overland
2018/01/15 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
本科生详细的自我评价
2013/09/19 职场文书
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
群众路线专项整治方案
2014/10/27 职场文书
见习报告格式要求
2014/11/04 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书