2012-03-22 93 views

回答

12

SocketIO是一個瀏覽器 - >服務器傳輸機制,而RabbitMQ是一個服務器 - >服務器消息總線。

這兩者可以一起實現,以在用戶旅程由消息在瀏覽器上開始生活並結束於某個持久層(如數據庫)的場景中創建一個響應速度非常快的系統。

消息將通過socketIO傳輸到Web服務器,然後,而不是Web服務器負責持久化消息,它會將它放在一個Rabbit隊列中,並讓其他一些進程負責持久化它。這樣,Web服務器可以自由地返回到其Web服務職責,並且關鍵地減輕其負載。

+0

因此,RabbitMQ可以緩解持續消息中的一些重負載。你是否推薦在Socket.IO之前使用RabbitMQ?通過這種方式,Socket.IO可以通過較小的Socket.IO服務器集羣進行高度擴展,但可以使用RabbitMQ服務器集羣進行擴展。我在正確的軌道上? – InspiredJW 2012-03-23 07:51:56

+0

如果你的意思是「Socket.IO前面的RabbitMQ」有一個web farm,它使用SocketIO來代理來自客戶端的請求,然後使用RabbitMQ集羣刪除旨在持久化的消息,然後分別設置一組服務從RabbitMQ消耗並堅持消息適當,然後是;-) – 2012-03-23 11:01:13

4

看看SockJS http://sockjs.org

  1. 它是由RabbitMQ的團隊
  2. 它比Socket.io簡單做
  3. 有用於SockJS

除此之外,一個Erlang服務器,還有的RabbitMQ團隊,打算內的實驗項目爲RabbitMQ提供一個SockJS插件。

+0

將非常有興趣瞭解更多關於該實驗項目。 – skyork 2012-05-22 11:12:50

+1

以下是官方發佈說明:http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/ – Marek 2012-05-27 16:51:51