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