Parallel Pipeline模式:
由三部分组成,push进行数据推送,work进行数据缓存,pull进行数据竞争获取处理。区别于Publish-Subscribe存在一个数据缓存和处理负载。
当连接被断开,数据不会丢失,重连后数据继续发送到对端
client
- # -*- coding: utf-8 -*-
- import sys
- import zmq
-
- context = zmq.Context()
- socket = context.socket(zmq.PUSH)
- socket.bind('tcp://*:5557')
-
- while True:
- data = input("input your data:")
- if data == 'q':
- sys.exit()
- print(data)
- socket.send(data.encode('utf-8'))
work
- # -*-coding:utf-8 -*-
- import zmq
-
- context = zmq.Context()
- recive = context.socket(zmq.PULL)
- recive.connect('tcp://127.0.0.1:5557')
- sender = context.socket(zmq.PUSH)
- sender.bind('tcp://127.0.0.1:5558')
-
- while True:
- data = recive.recv()
- print(data)
- sender.send(data)
server
- # -*- coding: utf-8 -*-
-
- import zmq
-
- context = zmq.Context()
- recive = context.socket(zmq.PULL)
- recive.connect('tcp://127.0.0.1:5558')
-
- while True:
- data = recive.recv()
- print(data)