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) 
  • 相关阅读:
    pinfinder
    华为方舟编译器
    SSH安全加固
    KindEditor
    SQL SERVER 常见SQL和函数使用
    SQL 时间处理
    sqlSQL2008如何创建定时作业(代理服务)(转)
    登录之问题总结
    文件操作(增删查改)
    SQL2008安装后激活方式以及提示评估期已过解决方法(转)
  • 原文地址:https://www.cnblogs.com/yezl/p/6604868.html
Copyright © 2011-2022 走看看