Hi all
I hope you will forgive a newbie question. Please feel free to send me
to a different resource if this question is in the wrong forum.
I've been teaching myself zeromq in combination with protobuffers. I've
been using the request/reply sockets and it's working perfectly in my
simple test codes. But now I need a slightly more complicated pattern
and I'm not quite sure how to do it. Here is my situation:
On one side I have a short lived client program with I would like to
connect to a server. Because there can be a few of these simultaneously
I would like my server to be multi-threaded. The situation is similar
to Figure 20 in http://zguide.zeromq.org/page:all. So far so good. The
issue however, is that I want each of my clients to interact with the
same server thread over the life of it's invocation. This is because
the threads of the server are interacting with a stateful resource and
multiple transactions between client and server are required to complete
an operation. From what I understand of zeromq, it seems to me that I
want either to
1. Have the dealer make sure it forwards each request from a particular
client to the same worker thread. Is there a recommended technique
for this?
2. Have each client socket connect directly to a socket in the worker
thread using some pattern that I don't see in the documentation. It
seems possible to me that this idea is antithetical to the zeromq
paradigm, so I wonder if I have some fundamental misunderstanding of
zeromq or if I just missed something or maybe both. Well, I did say
I was a newbie. :)
3. Rethink the idea that each client should only communication with the
same thread. I'm not sure if this is a possibility, but if 1 and 2
are difficult, I may want to investigate this further. At the least,
I need each worker thread to understand which client thread it is
communicating with. I suppose I could put some type of session key
in the message protocol if I knew how to get this info from zeromq.
Any comments or suggestions (even RTFM with a pointer to the correct
section) would be greatly appreciated.
Thanks
Howard
--
Howard Lander <mailto:[email protected]>
Senior Research Software Developer
Renaissance Computing Institute (RENCI) <http://www.renci.org>
The University of North Carolina at Chapel Hill
Duke University
North Carolina State University
100 Europa Drive
Suite 540
Chapel Hill, NC 27517
919-445-9651
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev