2012-01-06 63 views
15

我看到這個新的NGINX+ZeroMQ項目在github上,我現在感到困惑。Mongrel2與NGINX + ZeroMQ?

Mongrel2和NGINX + ZeroMQ之間有什麼特徵和可擴展性差異。

(爲什麼我想問的原因是因爲我的印象Mongrel2因爲NGINX被單獨創作不支持ZeroMQ下)

回答

32

我也看了一下nginx的+ zeromq模塊和我立刻發現了一個相當不同。

ZeroMQ nginx模塊使用REQ/REP套接字與後端進程進行通信。另一方面,mongrel2使用兩個插座。一個PUSH/PULL向下遊(向處理程序)和一個PUB/SUB(從處理程序接收響應)發送消息。這使得它完全異步。當mongrel2向後端處理程序發送請求時,它會立即從zmq_send()調用返回,並且隨後會在另一個套接字中接收響應。

另一個區別是,mongrel2能夠向多個客戶端發送相同的響應。您的處理程序可以告訴mongrel2這樣的事情:「請將此響應發送給連接4,5,6和10」。 Mongrel2將消息內的連接ID發送給處理程序。

希望這會有所幫助! =)

1

NGINX + ZeroMQ有bug。 1. NGINX在發送給ZMQ服務器(因爲它調用了發送鏈)上游掛鉤之前不支持NGINX 1.5,測試連接是否有效。它會失敗,因爲它有ZMQ套接字,而不是TCP套接字,因爲協議是不同的,它會說它是一個無效的連接。

  1. 有很多更像這樣的。

  2. 該模塊不支持keepalive。不僅上游,而且下游也不行。我正在努力讓下游的Keepalive工作。

我的建議:需要兩個月的時間才能實現ZMQ NGINX with keepalive。