Ответ 1
Я также читал о модуле nginx + zeromq, и я сразу заметил значительную разницу.
Модуль ZeroMQ nginx использует сокеты REQ/REP для связи с бэкэнд-процессами. С другой стороны, mongrel2 использует два гнезда. Один PUSH/PULL для отправки сообщений по течению (для обработчиков) и одного PUB/SUB (для получения ответов от обработчиков). Это делает его полностью асинхронным. Когда mongrel2 отправляет запрос бэкэнд-обработчикам, он немедленно возвращается из вызова zmq_send(), и ответ будет получен в другом сокете в любое время позже.
Другое отличие заключается в том, что mongrel2 способен отправлять один и тот же ответ нескольким клиенту. Ваш обработчик может сказать mongrel2 что-то вроде этого: "Доставьте этот ответ на соединения 4, 5, 6 и 10, пожалуйста". Mongrel2 отправляет идентификатор соединения в сообщении обработчикам.
Надеюсь, это поможет! =)