15

我在 github 上看到了这个新的NGINX+ZeroMQ项目,现在很困惑。

Mongrel2和 NGINX+ZeroMQ的特性和可扩展性有什么区别。

(我问的原因是因为我的印象是 Mongrel2 是由于 NGINX 不支持 ZeroMQ 而单独创建的)

4

2 回答 2

32

我还阅读了有关 nginx+zeromq 模块的信息,我立即发现了相当大的差异。

ZeroMQ nginx 模块使用 REQ/REP 套接字与后端进程通信。另一方面,mongrel2 使用两个套接字。一个 PUSH/PULL 向下游发送消息(到处理程序)和一个 PUB/SUB(接收来自处理程序的响应)。这使它完全异步。当 mongrel2 向后端处理程序发送请求时,它会立即从 zmq_send() 调用返回,并且稍后将在另一个套接字中接收响应。

另一个区别是 mongrel2 能够向多个客户端发送相同的响应。您的处理程序可以告诉 mongrel2 类似这样的信息:“请将此响应传递给连接 4、5、6 和 10”。Mongrel2 将消息中的连接 ID 发送给处理程序。

希望这可以帮助!=)

于 2012-01-07T19:26:35.180 回答
1

NGINX+ZeroMQ 有错误。1. 在发送到 ZMQ 服务器(因为它调用发送链)上游钩子之前,它不适用于 NGINX 1.5 原因 NGINX,测试连接是否有效。它会失败,因为它有 ZMQ 套接字而不是 TCP 套接字,因为协议不同,它会说它是一个无效的连接。

  1. 还有很多这样的。

  2. 该模块不支持保活。不仅上游,甚至下游都行不通。我正在努力使下游的keepalive工作。

我的建议:使用 keepalive 实现 ZMQ NGINX 需要两个人月。

于 2014-04-12T06:47:47.523 回答