On 11/17/2010 05:22 AM, technical issue wrote: > I want to write a web server in C++ that use ZMQ to transfer the > job to worker and receive the respone from the worker. > The web server using epoll runs in a process separated from the > worker process. > In the web server process we have 1 main thread and two child > threads. > when initializing, the main thread creates two child threads: > one for transferring the jobs to the PUSH queue (called C1), one > for receive the response from the SUB queue (like > Mongrel2),called C2. > the main thread uses epoll to accept the connection from the > client, parses HTTP header and then pushes the job to a queue > then the C1 gets job from internal queue and push to ZMQ PUSH > queue. > My question is: > - Is this architect OK?
I think so. AFAIK Mongrel2 does it the same way. > - Sholud I use 1 or 2 ZMQ I/O thread for C1 and C2 ? 1 should be enough. > - Because ZMQ does not support HTTP, is there any way to > integrate HTTP socket accepted from epoll into ZMQ polling? Either use zmq_poll instead of EPOLL, or get the file descriptor from 0MQ socket useing getsockopt(ZMQ_FD) and use epoll. Martin _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
