2012-09-12 44 views
4

我试着去决定我是否会从网络连接到RabbitMQ的经过:Web上的RabbitMQ - 蹬Web插件VS AMQP的NodeJS插件

解决方法1. RabbitMQ的跺脚插件+ RabbitMQ的网络跺脚插件+ Sockjs

解决方案2.的RabbitMQ +通过的NodeJS AMQP插件的NodeJS

场景:

一个)我有一个网络应用该订阅队列 b)本人具有被写入到该队列一个Java应用程序10 C)我有一个浏览器与溶液1打开和另一个溶液2

我测试都和发生的事情是:

当我发送顺序10.000消息,该溶液2比得多快解决方案2解决方案2从不松动连接。解决方案1大部分时间在随机时间内丢失连接(在获取每条消息之前)。

问题:

  1. 是否有任何限制的配置,我可以在溶液中1更新?

  2. 解决方案1的问题是由于:Sockjs? stomp插件?跺脚web插件?他们全部?我不明白为什么如果我在中间添加nodejs比在rabbitmq中嵌入erlang插件(rabbitmq stomp/rabbitmq web stomp插件)快得多。

    注意:stomp插件或stomp web插件永远不会死亡。它总是继续聆听他们的端口。

  3. 我的简单解释是,浏览器无法处理如此多的顺序消息,nodejs的管理非常好,而rabbitmq web践踏不能。但只是一个猜测。它是否正确?如果是这样,我该如何解决它?

  4. 解决方案1不应该比解决方案2更好(在等待时间内)?

注:如果我在发布这种问题消失每个消息的发送和溶液之间加的5毫秒的差1个进行等溶液2(用于10.000消息)。

感谢您的任何答案。

最好的问候,

爱德华

回答

0

您正在使用不同的协议相比,当然服务器(node.js中)和borwser的客户,他们有很大的不同! STOMP协议有助于为消息传递提供轻量级和简单的客户端,例如浏览器JS。

我想,解决方案1可能在很多浏览器和连接SockJS的类型而有所不同用途:XHR,WebSocket的,IFrame的...