Hi,
I have presently setup a PUB/SUB using zeromq with 1 forwarder device.
1] I have 1 forwarder on "host2"-
import zmq
def main():
try:
context = zmq.Context(1)
# Socket facing clients
frontend = context.socket(zmq.SUB)
frontend.bind("tcp://*:5559")
frontend.setsockopt_string(zmq.SUBSCRIBE, "")
# Socket facing services
backend = context.socket(zmq.PUB)
backend.bind("tcp://*:5560")
zmq.device(zmq.FORWARDER, frontend, backend)
except Exception as e:
print(e)
print("bringing down zmq device")
finally:
pass
frontend.close()
backend.close()
context.term()
if __name__ == "__main__":
main()
2] 1 producer on "host1" -
import zmq
import random
import sys
import time
port = "5559"
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.connect("tcp://host2:%s" % port)
publisher_id = 0
while True:
topic = 100
messagedata = "server#%s" % publisher_id
publisher_id = publisher_id + 1
print("%s %s" % (topic, messagedata))
socket.send_string("%d %s" % (topic, messagedata))
time.sleep(1)
1 consumer on "host3" -
import sys
import zmq
port = "5560"
# Socket to talk to server
context = zmq.Context()
socket = context.socket(zmq.SUB)
print("Collecting updates from server...")
socket.connect ("tcp://host1:%s" % port)
topicfilter = "9"
socket.setsockopt_string(zmq.SUBSCRIBE, '')
while True:
string = socket.recv()
topic, messagedata = string.split()
print(topic, messagedata)
I wanted to measure the avg. delivery latency between the producer and the consumer. I wanted to know how to go about measuring the same.
Regards,
Aditya