【发布时间】:2012-09-12 19:12:28
【问题描述】:
我正在尝试决定是否要通过以下方式从 web 连接到 rabbitmq:
方案一、Rabbitmq stomp 插件 + Rabbitmq web stomp 插件 + Sockjs
方案2. Rabbitmq + nodejs 通过 amqp nodejs 插件
场景:
a) 我有一个订阅队列的网络应用 b) 我有一个正在写入该队列的 Java 应用程序 c) 我用解决方案 1 打开一个浏览器,用解决方案 2 打开另一个浏览器
我都测试了,结果是这样的:
当我发送连续的 10.000 条消息时,解决方案 2 比解决方案 1 快得多。解决方案 2 永远不会断开连接。解决方案 1 大多数情况下会在随机时间(在收到每条消息之前)断开连接。
问题:
-
我可以在解决方案 1 中更新任何限制配置吗?
-
解决方案1的问题是由于:Sockjs?跺脚插件?跺脚网络插件?他们都是?我不明白为什么如果我在中间添加 nodejs 比 rabbitmq 中的嵌入式 erlang 插件(rabbitmq stomp /rabbitmq web stomp 插件)要快得多。
注意:stomp 插件或 stomp web 插件永远不会消失。它总是继续监听它们的端口。
-
我的简单解释是浏览器无法处理如此多的顺序消息,而 nodejs 可以很好地处理这一点,而 rabbitmq web stomp 则不能。但也只是猜测。它是否正确?如果是这样,我该如何解决?
-
解决方案 1 不应该比解决方案 2 更好(延迟也是如此)?
注意:如果我在发布者中添加每条消息发送之间 5 毫秒的差异,则此问题将消失,并且解决方案 1 的执行方式与解决方案 2 相同(对于 10.000 条消息)。
感谢您的任何回答。
最好的问候,
爱德华多
【问题讨论】: