Open
Description
Issue with Message Ordering in ZeroMQ PUSH-PULL Using send_multipart
Context:
I am currently working on a multi-threaded module where multiple PUSH sockets send messages to a single PULL socket using ZeroMQ. The messages are sent using the send_multipart method in the following format:
send_socket.send_multipart([msg1, msg2])
- msg1: JSON data
- msg2: JPEG byte data
On the receiver side, I am using:
x = receive_socket.recv_multipart() .
I expect x[0] to always contain the JSON data (msg1), and x[1] to contain the JPEG bytes (msg2). However, in some cases, I am receiving the JPEG bytes as x[0], causing message misalignment.
Current Setup:
Messaging Pattern: PUSH-PULL
Multiple PUSH sockets sending data to a single PULL socket
Questions:
- Is there a more suitable messaging pattern in ZeroMQ that can ensure message ordering while handling multiple senders?
- Are there any techniques or configurations I should apply to prevent message parts from arriving in the wrong order?
Any insights or suggestions would be greatly appreciated.
Thank you!