python pyzmq,yqm是啥

  python pyzmq,yqm是啥

  

  【相关学习推荐:python教程】

  00-1010ZMQ(以下简称ZMQ)是一个简单易用的传输层,一个像框架一样的socket库,让Socket编程更简单,简洁,性能更高。

  是一个消息处理队列库,可以在多线程、内核、主机盒之间灵活伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,然后进入Linux内核”。

  ZMQ使得编写高性能网络应用程序变得极其简单和有趣。

  ZeroMQ不是socket的包,所以不能用来实现现有的网络协议。

  它有自己的模式,不同于更低级的点对点通信模式。

  它的协议级别比tcp高。(当然ZeroMQ不一定基于TCP协议,也可以用于进程间和进程内通信)

  Zeromq与rabbitmq消息队列不同,它实际上只有一个消息队列组件和一个库。

  ZMQ官网:zeromq . org/languages/python/githubgithub.com/zeromq/pyzmqdocszeromq . github . io/pyzmq/guidezguide . zeromq . org/py 3360 all

Pyzmq介绍

pip安装pyzmq

 

  

Download

1. 请求应答模式(Request-Reply)(rep 和 req)

 

  信息是双向的,有两个方向。对于请求所请求的消息,代表必须回复请求。

  2. 订阅发布模式 (pub 和 sub)

  单向消息,有去无回。根据发布者可以发布主题的消息,订阅者可以订阅喜欢的主题,订阅者只会收到自己订阅过的主题。发布者发布可以被多个订阅者接收的消息。

  3. push pull模式

  消息是单向的,没有回报。对于任何push消息,总是只有一个pull端接收消息。

  随后的代理模式和路由模式都是三种基本模式的扩展或变体。

  00-1010客户端请求后,服务器必须做出响应。

  客户端发起请求,并等待服务器响应请求。从客户端来说,必须是一对发送和接收对;

  相反,它必须是服务器端的收发器对。服务器和客户端都可以是1: n模型。一般认为1是服务器,n是客户端。

  ZMQ可以很好的支持路由功能(实现路由功能的组件称为设备),它将1: n扩展为N: m(只需要增加很少的路由节点)。

  在这个模型中,较低层的端点地址对上层是隐藏的。每个请求都暗示了一个响应地址,但是应用程序并不关心它。

  服务器端:

  

Pyzmq的几种模式

导入zmq导入系统

 

  上下文=zmq。上下文()

  套接字=context.socket(zmq。代表)

  socket . bind( TCP ://* :5555 )

  而True:

  尝试:

  打印(等待客户端.)

  message=socket.recv()

  print(来自客户端:的消息,message.decode(utf-8 ))

  socket.send(消息)

  e:除外

  打印(异常3360 ,e)

  Sys.exit()客户端:

  #client.py

  导入zmq导入系统

  上下文=zmq。上下文()

  打印(连接

   to server...")

   socket = context.socket(zmq.REQ)

   socket.connect("tcp://localhost:5555")

   while True:

   input1 = input("请输入内容:").strip()

   if input1 == 'b':

   sys.exit()

   socket.send(input1.encode('utf-8'))

   message = socket.recv()

   print("Received reply: ", message.decode('utf-8'))

2.Publish-Subscribe模式(发布订阅模型):

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

 

  服务端

  server.py

  

 import zmq import time import sys

客户端1

 

  client1.py

  

 import zmq

客户端2

 

  client2.py

  

 import zmq

3.Parallel Pipeline模式(管道模型):

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

 

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

  server.py

  

 import zmq import time

worker.py

 

  

 import zmq

client.py

 

  

 import zmq

以上就是关于Pyzmq介绍的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

 

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: