zoukankan      html  css  js  c++  java
  • 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) 
  • 相关阅读:
    CSU 1333 Funny Car Racing
    FZU 2195 检查站点
    FZU 2193 So Hard
    ZOJ 1655 FZU 1125 Transport Goods
    zoj 2750 Idiomatic Phrases Game
    hdu 1874 畅通工程续
    hdu 2489 Minimal Ratio Tree
    hdu 3398 String
    洛谷 P2158 [SDOI2008]仪仗队 解题报告
    POJ 1958 Strange Towers of Hanoi 解题报告
  • 原文地址:https://www.cnblogs.com/yezl/p/6604868.html
Copyright © 2011-2022 走看看