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 ...
随机推荐
- PostgreSQL归档日志 手动触发归档 select pg_switch_xlog()
(转,做记录) 一 环境信息--1.1 PostgreSQL 版本 9.3.0 --1.2 postgresql.conf wal_level = hot_standbyarchive_mode = ...
- debounce与throttle区别
在2011年,Twitter网站曾爆出一个问题:在主页往下滚动时,页面会变得缓慢以致没有响应.John Resig发表了一篇文章< a blog post about the problem&g ...
- Near Field Communication (NFC) applications
Near Field Communication (NFC) applications There has been little practical guidance available on NF ...
- OneDrive网页版打不开的解决办法
发现OneDrive文件被误删了,想去网页版找回历史文件,发现网页版无法打开,而客户端是可以正常使用的,于是猜测是域名指向的主IP被封了,于是想通过客户端的IP访问 第一步,WireShark抓包 第 ...
- laravel 框架给数组分页
//Get current page form url e.g. &page=6 $currentPage = LengthAwarePaginator::resolveCurr ...
- Spring IOC容器的初始化-(二)BeanDefinition的载入和解析
前言 1.在讲BeanDefinition的载入和解析之前,我们先来看看什么是BeanDefinition. Bean对象在Spring中是以BeanDefinition来描述的,也就是说在Sprin ...
- 前端工程师面试问题归纳(二、问答类JQ相关)
其他随笔 前端工程师面试问题归纳(一.问答类html/css/js基础) 前端工程师面试问题归纳(三.代码类) 1. jQuery 库中的 $() 是什么? $() 函数是 jQuery() 函数的别 ...
- Django工程目录结构优化
1.我看到这篇文章,写的不错,在此复制了一份,防止以后找不到! 感谢作者的翻译--->原文的链接:http://www.loonapp.com/blog/11/ 如果原文存在,请打开原文件阅读 ...
- Free Online SQL Formatter
SQL Formatter Web Service Free Online SQL Formatter SQL Parser engine used by SQL formatter 今日找了几个在线 ...
- 积累 ---- PHP可能会遇到的面试题
1.白盒测试和黑盒测试的区别 2.Bootstrap是什么 3.OOP是什么意思 4.git和svn的使用 5.常用的git命令 6.lamp开发环境 7.高内聚,低耦合