【问题标题】:Web to rabbitmq - stomp web plugin vs nodejs amqp pluginWeb to rabbitmq - stomp web plugin vs nodejs amqp plugin
【发布时间】: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 中更新任何限制配置吗?

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

    注意:stomp 插件或 stomp web 插件永远不会消失。它总是继续监听它们的端口。

  3. 我的简单解释是浏览器无法处理如此多的顺序消息,而 nodejs 可以很好地处理这一点,而 rabbitmq web stomp 则不能。但也只是猜测。它是否正确?如果是这样,我该如何解决?

  4. 解决方案 1 不应该比解决方案 2 更好(延迟也是如此)?

注意:如果我在发布者中添加每条消息发送之间 5 毫秒的差异,则此问题将消失,并且解决方案 1 的执行方式与解决方案 2 相同(对于 10.000 条消息)。

感谢您的任何回答。

最好的问候,

爱德华多

【问题讨论】:

    标签: node.js rabbitmq stomp


    【解决方案1】:

    您正在比较使用不同协议的服务器(node.js)和浏览器客户端,当然它们是非常不同的! STOMP 协议可用于为仅消息传递提供轻量级且简单的客户端,例如浏览器 JS。

    我猜,解决方案 1 可能因浏览器和 SockJS 使用的连接类型而有很大差异:XHR、WebSocket、IFrame ......

    【讨论】:

    • 嘿,我在 websocket 中使用节点 amqp 配置了 rmq 设置,但在接收我发布到我的交易所的消息时遇到问题。请你看看我的帖子stackoverflow.com/questions/70320526/…,谢谢!
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2015-05-26
    • 2016-10-23
    • 2019-05-08
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多