I am coding a workload scheduler. I would like my piece of software to be a peer-to-peer scheduler, ie. a node only knows some neighbours (other nodes) and use them to reach other nodes.
Each node would have its own weighted-routing table to send messages to other peers (basically based on the number of hops), ie. "I want the master to give me my schedule" or "is resource A available on node B ?" : which neighbor is the closest to my target ?
For instance I have written my own routing protocol using XML-RPC
(xmlrpc-c
) and std::multimaps
/ std::maps
.
I am thinking of using ZeroMQ
to optimze my data streams :
As a consequence :
Do you think that ZeroMQ
can be a helpful concept to use ?
It would be helpful to know exactly what you mean by "routing protocol". That sounds like you mean the business logic of routing to a particular peer. Knowing more fully what you're looking to achieve with ZeroMQ would also be helpful.
Have you read the ZeroMQ Guide? ZeroMQ is a pretty different beast and without spending some time to play with it, you'll likely find yourself confused. As a bonus, reading the guide will also help you answer this question for yourself, since you know your requirements better.
ZeroMQ was designed to build robust distributed and multi-threaded applications. Since distributed applications can often take the form of "peer-to-peer", ZeroMQ could indeed be a good fit for your needs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With