saltstack系列(四)——zmq Paraller Pipeline模式
push/pull模式
push/pull模式,这是一个什么模式呢?战争时期,食物紧缺,实行配给制,大家都排好队,有人专门发放食物,前一个人领取了食物,后一个人跟上继续领取食物,这个push端就是发放食物的,pull端就是领取食物的,所不同的是,现实中,你领取完了食物就不能排队等候了,但zmq的push/pull模式中,一个pull端领取完了食物,可以继续排队等待push端发放食物。

我们发送出一条信息的时候worker会进行分配,按照分配进行转发
上代码,Ventilator端
#coding:utf-8
import zmq
print("这是发送端,我的ip和端口是127.0.0.1:8001")
cont = zmq.Context()
sock = cont.socket(zmq.PUSH)
sock.bind("tcp://127.0.0.1:8001")
while True:
data = raw_input(">>>")
sock.send(data)
Sink端
#coding:utf-8
import zmq
print("这是接收端,我的ip和端口是127.0.0.1:8000")
cont = zmq.Context()
sock = cont.socket(zmq.PULL)
sock.bind("tcp://127.0.0.1:8002")
while True:
recv = sock.recv()
print(recv)
Worker
#coding:utf-8
import zmq print("I am worker 1") cont = zmq.Context() recv_sock = cont.socket(zmq.PULL)
recv_sock.connect("tcp://127.0.0.1:8001") send_sock = cont.socket(zmq.PUSH)
send_sock.connect("tcp://127.0.0.1:8002") while True:
recv = recv_sock.recv()
send_sock.send(recv)
print("worker 1 is worked,it's content is %s"%recv)
saltstack系列(四)——zmq Paraller Pipeline模式的更多相关文章
- saltstack系列(三)——zmq订阅/发布模式
zmq订阅发布模式 server端代码: #coding=utf-8 ''''' 服务端,发布模式 ''' import zmq from random import randrange contex ...
- saltstack系列(二)——zmq应答模式
python zeromq介绍 1.ZeroMQ并不是一个对socket的封装,不能用它去实现已有的网络协议. 2.有自己的模式,不同于更底层的点对点通讯模式. 3.有比tcp协议更高一级的协议(当然 ...
- saltstack系列(六)——zmq扩展(二)
问题 我们已经熟练的掌握了REQ/REP模式,它是一个一对多的模式,一个REP对应多个REQ. 但是现实工作中,我们会遇到这样的难题,一个REP无法满足REQ的提问,因为REQ太多了,虽然可以增加一个 ...
- saltstack系列(五)——zmq扩展(一)
问题 假设我们的一个客户端既有pull又有sub,他们两个都需要接收消息,该如何协调呢,毕竟,当一个socket要收消息的时候,函数recv是阻塞的,所以,我们第一个思路是不让它阻塞? 实例代码: # ...
- Netty4.x中文教程系列(四) 对象传输
Netty4.x中文教程系列(四) 对象传输 我们在使用netty的过程中肯定会遇到传输对象的情况,Netty4通过ObjectEncoder和ObjectDecoder来支持. 首先我们定义一个U ...
- S5PV210开发系列四_uCGUI的移植
S5PV210开发系列四 uCGUI的移植 象棋小子 1048272975 GUI(图形用户界面)极大地方便了非专业用户的使用,用户无需记忆大量的命令,取而代之的是能够通过窗体.菜单 ...
- java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现
java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析 ...
- sed修炼系列(四):sed中的疑难杂症
本文目录:1 sed中使用变量和变量替换的问题2 反向引用失效问题3 "-i"选项的文件保存问题4 贪婪匹配问题5 sed命令"a"和"N" ...
- 转:arcgis api for js入门开发系列四地图查询
原文地址:arcgis api for js入门开发系列四地图查询 arcgis for js的地图查询方式,一般来说,总共有三种查询方式:FindTask.IdentifyTask.QueryTas ...
随机推荐
- transition 总结
详情:http://www.css88.com/book/css/properties/transition/transition-property.htm left不能进行transition
- linux rm删除含有特殊符号目录或者文件
想要删除time$1.class,用rm time$1.class是不行的,可以用 rm time"$"1.class 删掉 假设Linux系统中有一个文件名叫“-polo”. ...
- 21天学通C++_Day3_Part3
控制程序流程 0.switch...case...语句中省略了break? break让程序能够退出switch结构,如果没有将继续评估后面的case语句 1.如何退出无限循环? 使用break退出当 ...
- MySql必知必会实战练习(二)数据检索
在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作. 1. Select子句使用顺序 select--->DISTINCT---& ...
- NNI (Neurol Network Intelligence) 是微软开源的自动机器学习工具
NNI (Neurol Network Intelligence) 是微软开源的自动机器学习工具 https://www.cnblogs.com/ms-uap/p/9719071.html [重磅]微 ...
- python 使用sk_learn 遇到 问题ValueError: Expected 2D array, got 1D array instead:
这里我找到我的问题是: 使用的是一个新的scikit学习版本,它抛出了一个错误,因为在新版本中,所有东西都必须是一个二维矩阵,甚至是一个列或行. 它甚至说:用数组来重塑你的数据.如果您的数据有一个单独 ...
- 解决get方法传递URL参数中文乱码问题
[转]解决get方法传递URL参数中文乱码问题 来自:http://www.javaeye.com/topic/483158 应用一:解决tomcat下中文乱码问题(先来个简单的) 在tomcat下, ...
- 20165222《Java程序设计》——实验二 面向对象程序设计
20165222<Java程序设计>——实验二 面向对象程序设计 提交点一.JUnit测试用例 知识点:这里就是了解测试代码的应用,测试代码的书写为:@Test assertEquals( ...
- ③SpringBoot中Redis的使用
本文基于前面的springBoot系列文章进行学习,主要介绍redis的使用. SpringBoot对常用的数据库支持外,对NoSQL 数据库也进行了封装自动化. redis介绍 Redis是目前业界 ...
- FastAdmin 后台 UserRule 勾选不完整 Bug 修复
FastAdmin 后台 UserRule 勾选不完整 Bug 修复 当用户权限的级选择时出现有部分没有选中. 修复来自在 qmit 1 public static function getTreeL ...