2012-03-22 90 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