[zeromq-dev] Design problem of distributed environment

Matej Puk puk.matej at gmail.com
Wed Nov 15 20:14:35 CET 2017

I am trying to implement some simple example using pyre but with no luck so
far. Do you have any experience with pyre or zyre?

2017-11-15 17:42 GMT+01:00 Matej Puk <puk.matej at gmail.com>:

> Thanks for the answer. ZeroMQ is something new for me and I had no idea
> something like Zyre existed so thanks for bringing it up. It looks like
> best solution for my problem so far.
> To your question of how am I defining a neighbor. Well this simulator
> which I am developing is supposed to simulate distributed environment on
> single or more machines. It is actually a diploma thesis
> so there is not so much time for developing it to be able to simulate
> environment on more machines but assumption is that in some distant future
> it will.
> Now I am focused to develop version which will correctly simulate
> environment on single machine. Entities in this environment are threads.
> Every thread represent single entity and have behavior.
> At beginning I should say that this project is a simulator for distributed
> algorithms. So in basic user writes algorithm in simplified language that I
> developed than compiler compiles this language and creates
> data about behavior of entities described in algorithm. Part of compiling
> is also processing file with environment topology where every entity has
> it's own id, ip, port and neighbors.
> So every entity know whom are it's neighbors thus knowing ip addresses and
> ports.
> But problem was that I think I can not approach this problem via patterns.
> Because user has ability to enter whatever algorithm he decides which means
> behavior of entities is not predictable and must be flexible.
> I will look into Zyre documentation but at first glance I think it offers
> everything that I need. I wanted some simple solution because someone for
> example suggested that every entity should have socket for each neighbor,
> but I do not think that when I have environment where are 20 entities and
> every one of them has 19 sockets on single machine is right approach.
> 2017-11-15 15:10 GMT+01:00 Wes Young <wes at barely3am.com>:
>> I am currently fighting with some design issues for my project and as
>> newbie to zeroMQ I am here to look for advice. My project should simulate
>> distributed algorithm in distributed environment.
>> welcome :)
>> For example algorithm like brodcasting. I need to implement communication
>> between nodes in this environment and I chose to use zeroMq.
>> My question is what do you think is the best approach when you want to
>> design environment where entity must do following:
>>    - be able to receive messages from neighbours,
>>    - be able to send message to all or maybe few selected neighbours.
>> some of this may depend how you define “a neighbor” (e.g.: pre-configured
>> env, or zero-conf env). if you’re looking for little-to-zero configuration,
>> may wanna checkout zyre:
>> https://rfc.zeromq.org/spec:36/ZRE
>> https://github.com/zeromq/zyre
>> My first idea was to give very entity a ROUTER socket. Is it possible to
>> achieve it with only routers?
>> I believe so- but you may wanna start by reading about the different
>> patterns first and prototyping some simple one to one, one to two patterns
>> to get your hands dirty first, get a feel for the different socket types:
>> http://zguide.zeromq.org/page:all#Messaging-Patterns
>> You probably start out with REQ/REP which is easy- then move into async
>> (router/dealer) then into something like Zyre where the learning curve is a
>> little steeper (but probably closer to what you want long term if I’m
>> understanding your question).
>> As I looked at ROuter it can send message to multiple nodes and also can
>> receive messages from multiple nodes.
>> Every entity knows who is it's neoghbor and have information about IP's
>> and ports.
>> Yea, sounds like a problem ZYRE solves- but if you’re new may wanna work
>> your way into it a bit with some of the simpler types first..
>> make sense?
>>>> wes
>> wesyoung.me
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20171115/e6f391d8/attachment.htm>

More information about the zeromq-dev mailing list