我在 github 上看到了这个新的NGINX+ZeroMQ项目,现在很困惑。
Mongrel2和 NGINX+ZeroMQ的特性和可扩展性有什么区别。
(我问的原因是因为我的印象是 Mongrel2 是由于 NGINX 不支持 ZeroMQ 而单独创建的)
我在 github 上看到了这个新的NGINX+ZeroMQ项目,现在很困惑。
Mongrel2和 NGINX+ZeroMQ的特性和可扩展性有什么区别。
(我问的原因是因为我的印象是 Mongrel2 是由于 NGINX 不支持 ZeroMQ 而单独创建的)
我还阅读了有关 nginx+zeromq 模块的信息,我立即发现了相当大的差异。
ZeroMQ nginx 模块使用 REQ/REP 套接字与后端进程通信。另一方面,mongrel2 使用两个套接字。一个 PUSH/PULL 向下游发送消息(到处理程序)和一个 PUB/SUB(接收来自处理程序的响应)。这使它完全异步。当 mongrel2 向后端处理程序发送请求时,它会立即从 zmq_send() 调用返回,并且稍后将在另一个套接字中接收响应。
另一个区别是 mongrel2 能够向多个客户端发送相同的响应。您的处理程序可以告诉 mongrel2 类似这样的信息:“请将此响应传递给连接 4、5、6 和 10”。Mongrel2 将消息中的连接 ID 发送给处理程序。
希望这可以帮助!=)
NGINX+ZeroMQ 有错误。1. 在发送到 ZMQ 服务器(因为它调用发送链)上游钩子之前,它不适用于 NGINX 1.5 原因 NGINX,测试连接是否有效。它会失败,因为它有 ZMQ 套接字而不是 TCP 套接字,因为协议不同,它会说它是一个无效的连接。
还有很多这样的。
该模块不支持保活。不仅上游,甚至下游都行不通。我正在努力使下游的keepalive工作。
我的建议:使用 keepalive 实现 ZMQ NGINX 需要两个人月。