[zeromq-dev] which pattern to use

Michal Singer michal at leadspace.com
Mon Nov 5 16:35:26 CET 2012

Do you mean that I should change in the broker code (mdbroker- in java
implementation) the wait to send a response from worker (method
processWorker handle of MDP.W_REPLY) 

to dispatch to one of the clients like as defined for the workers?


Does it mean that I should use the same pattern:



Theoretically I would prefer to use a dealer as the broker in between since
I don't need the ROUTER's knowledge of who to response to. But according to
the man, a DEALER can only talk to a ROUTER,REQ, REP. 

Is this correct? Should I use dealer to router to dealer in this case? Or is
this legal?




From: zeromq-dev-bounces at lists.zeromq.org
[mailto:zeromq-dev-bounces at lists.zeromq.org] On Behalf Of Charles Remes
Sent: Monday, November 05, 2012 4:05 PM
To: ZeroMQ development list
Subject: Re: [zeromq-dev] which pattern to use


Read this wiki page about DEALER and ROUTER sockets:


That page should help clarify how you can modify the Majordomo pattern to
accomplish your task. The broker in the middle could easily round-robin (or
whatever scheme you choose) the replies back to the request group.


Right now the majordomo broker assumes a single request will be mapped to a
group of workers. You want the request to also come from a group. In the
current broker examples, the original requestor is looked up so the reply
can be sent back. You would modify that to lookup the group that the request
came from and pick the next available worker to send the reply back to.


Does that make sense?





On Nov 5, 2012, at 7:48 AM, Michal Singer <michal at leadspace.com> wrote:

Can I do the Majordomo pattern with two sockets, one in each direction to
get the feature of "return to different clients with the answer" ? Or is it
better to use the push-pull?

The push-pull is not explained a lot in the guide so I am not sure how to

1.       LRU

2.       Service discovery

3.       Reliability

Whereas the Majordomo is explained a lot with all the examples.






From: Michal Singer [mailto:Michal@ <http://leadspace.com> leadspace.com] 
Sent: Monday, November 05, 2012 1:58 PM
To: 'ZeroMQ development list'
Subject: RE: [zeromq-dev] which pattern to use


Thanks for the fast replyJ

The problem with this that it uses ROUTER as broker as this is a
request-reply pattern and I don't want the reply to necessarily return to
the sender but instead to anyone which is listening in the same group of


From:  <mailto:zeromq-dev-bounces at lists.zeromq.org>
zeromq-dev-bounces at lists.zeromq.org [
<mailto:zeromq-dev-bounces at lists.zeromq.org>
mailto:zeromq-dev-bounces at lists.zeromq.org] On Behalf Of Pieter Hintjens
Sent: Monday, November 05, 2012 12:14 PM
To: ZeroMQ development list
Subject: Re: [zeromq-dev] which pattern to use


You can probably base this off the Majordomo pattern.


On Mon, Nov 5, 2012 at 10:48 AM, Michal Singer <
<mailto:michal at leadspace.com> michal at leadspace.com> wrote:


I am new with ZMQ. I am checking it out to use for a distributed system. I
am reading the guide but I can't find an exactly suited pattern for our

I need a pattern for:

.         a services oriented system: one which consists of groups of
service, let's say group A (A1, A2, A3,.), group B (B1,B2,B3,..), group

.         These services are like 'workers'

.         Each service from each group can send a request to one service
from each of the other groups

.         The reply from the destination service can go to any of the other
services from the sending group


Something like this:


A1 (send request to)->B2 (send reply to)->A2 (send request to )->C1 (send
reply to )->A1



It is some sort of a push-pull where any service should have a 'PUSH' and
'PULL' socket.

It is also some kind of a dealer to dealer type of a pattern, though it is
important that the reply can return to any of the sending group.


I got to chapter 6 and couldn't find any good examples of the PUSH-PULL
pattern and it seems like I need one to fully cover all scenarios of
reliability and so on.


What should I do?


Thanks in advance, Michal


zeromq-dev mailing list
 <mailto:zeromq-dev at lists.zeromq.org> zeromq-dev at lists.zeromq.org


zeromq-dev mailing list
zeromq-dev at lists.zeromq.org


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20121105/4917ce41/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 11048 bytes
Desc: not available
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20121105/4917ce41/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 11563 bytes
Desc: not available
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20121105/4917ce41/attachment-0001.png>

More information about the zeromq-dev mailing list