Ins*_*dJW 6 rabbitmq socket.io
我目前正在使用带有redis存储的Socket.IO.
我正在使用Room功能.
所以我对房间加入(订阅)完全没问题
并使用Socket.IO保留(取消订阅).
我刚看到这个页面
http://www.rabbitmq.com/blog/2010/11/12/rabbitmq-nodejs-rabbitjs/
我发现有些人正在使用带有rabbitMQ的Socket.IO.
为什么单独使用Socket.IO还不够好?
有没有什么好的理由在RabbitMQ上使用Socket.IO?
Ste*_*tin 13
SocketIO是一个浏览器 - >服务器传输机制,而RabbitMQ是服务器 - >服务器消息总线.
这两个可以一起实现,其中用户的旅程由一个消息上的浏览器开始生活在结束了创造情景中非常敏感的系统,比如说,一些持久层(如数据库).
消息将通过socketIO传输到Web服务器,然后,而不是负责持久保存消息的Web服务器,它会将其丢弃到Rabbit队列上,并让其他一些进程负责持久保存它.这样,Web服务器可以自由地返回其Web服务职责,并且至关重要的是减轻其负载.
我只是出于与接受的答案不同的原因将rabbitMQ 与socket.io 一起使用。它在 2012 年并不那么重要,这就是我在这里更新它的原因。
我正在使用具有可扩展性和高可用性的聊天应用程序的 docker swarm 部署。我在集群中运行了聊天应用程序(使用 socket.io)的三个副本。群集群自动对传入请求进行负载平衡,并且在任何给定时间客户端都可能连接到应用程序的三个副本中的任何一个。
在这种情况下,确实有必要同步应用程序副本中的 WebSocket 响应,因为连接到应用程序的两个不同实例的两个客户端不会收到彼此的消息,因为它们已连接到不同的 WebSocket。
这就是rabbitMQ 发挥作用的地方。它同步应用程序的所有实例,并且每当从副本上的 WebSocket 推送消息时,所有副本都会推送该消息。
这里给出了该项目的完整细节。这是socket.io 和rabbitMQ 结合使用的潜在用例。这适用于在具有高可用性和可扩展性的分布式环境中使用 socket.io 的任何应用程序。
看看 SockJS http://sockjs.org。
除此之外,RabbitMQ 团队还有一个实验项目,打算为 RabbitMQ 提供一个 SockJS 插件。
| 归档时间: |
|
| 查看次数: |
9366 次 |
| 最近记录: |