关于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发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
跟老齐学Python之编写类之二方法
Oct 11 Python
详解Python nose单元测试框架的安装与使用
Dec 20 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
如何用python写一个简单的词法分析器
Dec 18 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
详解Python3定时器任务代码
Sep 23 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
Django视图、传参和forms验证操作
Jul 15 Python
python实现文件分片上传的接口自动化
Nov 19 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 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 DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
使用Apache的rewrite
2021/03/09 Servers
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
js微信分享实现代码
2020/10/11 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
深入Python函数编程的一些特性
2015/04/13 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
Python3 中文文件读写方法
2018/01/23 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
学习心得体会
2014/01/01 职场文书
初中军训感想300字
2014/03/05 职场文书
实习感想范文
2015/08/10 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python