Tôi cũng đọc về nginx + zeromq mô-đun và tôi ngay lập tức phát hiện một sự khác biệt đáng kể.
Mô-đun nginx ZeroMQ sử dụng các ổ cắm REQ/REP để giao tiếp với các quy trình phụ trợ. Mặt khác, mongrel2 sử dụng hai ổ cắm. Một PUSH/PULL để gửi tin nhắn hạ lưu (đến các trình xử lý) và một PUB/SUB (để nhận các phản hồi từ các trình xử lý). Điều này làm cho nó hoàn toàn không đồng bộ. Khi mongrel2 gửi yêu cầu đến các trình xử lý phụ trợ, nó sẽ trả về ngay lập tức từ cuộc gọi zmq_send() và phản hồi sẽ được nhận trong một socket khác, bất cứ lúc nào sau đó.
Một điểm khác biệt là mongrel2 có khả năng gửi cùng một phản hồi cho nhiều hơn một máy khách. Trình xử lý của bạn có thể nói với mongrel2 một cái gì đó như thế này: "Cung cấp phản ứng này cho các kết nối 4, 5, 6 và 10, xin vui lòng". Mongrel2 gửi ID kết nối trong tin nhắn đến các trình xử lý.
Hy vọng điều này sẽ hữu ích! =)
Nguồn
2012-01-07 19:26:35