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) 
  • 相关阅读:
    安装TeX字体
    【数学】对数的底为什么不能为负数
    算法设计的要求
    Windows HTTP Services
    为什么分母不能为0
    循环小数怎样变分数
    在win7环境下批量修改文件权限
    算法复杂度的极限证明
    深入理解 【有理数】、【无理数】、【虚数】
    kettle连接sqlserver
  • 原文地址:https://www.cnblogs.com/yezl/p/6604868.html
Copyright © 2011-2022 走看看