问题标签 [rabbitmq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5981 浏览

python - 使用 RabbitMQ 和 Python 进行基于内容的路由

RabbitMQ 和 Python 是否可以进行基于内容的路由?

AMQP 标准和 RabbitMQ 声称支持基于内容的路由,但是是否有任何 Python 库支持指定基于内容的绑定等?

我目前使用的库(py-amqplib http://barryp.org/software/py-amqplib/)似乎只支持简单模式匹配(#、*)的基于主题的路由。

0 投票
4 回答
6674 浏览

benchmarking - RabbitMQ 消息消费者停止消费消息

我们的团队在 ActiveMQ 或 RabbitMQ 之间进行选择。我们制作了 2 个小的生产者/消费者尖峰,发送带有 16 个字符串、一个时间戳和 2 个整数的数组的对象消息。我们的开发机器上的尖峰是正常的(消息被很好地消耗)。

然后是长凳。我们首先注意到,有时在我们的机器上,当我们发送大量消息时,消费者有时会挂起。它在那里,但消息在队列中累积。

当我们上台时:

  • 2 个 rabbitmq 机器集群 4 核/3.2Ghz,4Gb RAM,由 VIP 负载平衡
  • 在 rabbitmq 机器上运行的 1 到 6 个消费者,将消息保存在 mysql 数据库中(数据库的机器类型相同)
  • 12 个生产者在 12 台 AS 机器(tomcat)上运行,被另一台机器上运行的 jmeter 攻击。在产生相同负载的 RabbitMQ 消息的 servlet 上,负载约为每秒 600 到 700 个 http 请求。

我们注意到有时,消费者挂起(好吧,他们没有被阻止,但他们不再消费消息)。我们可以看到,因为每个消费者在数据库中保存了大约 100 msg/sec,所以当一个消费者停止消费时,DB 中每秒保存的整体消息以相同的比例下降(如果假设 3 个消费者停止,我们下降大约 600 msg /sec 到 300 msg/sec)。

在那段时间里,生产者没问题,仍然以 jmeter 速率(大约 600 msg/秒)生产。消息在队列中并由仍然“活着”的消费者获取。

我们先用生产者加载所有的servlet,然后一个一个地启动所有的消费者,检查连接是否正常,然后运行jmeter。

我们正在向一个直接交易所发送消息。所有消费者都在收听一个绑定到交换的持久队列。

这一点对我们的选择很重要。你用 rabbitmq 看到过这个,你知道发生了什么吗?

谢谢您的回答。

0 投票
1 回答
1738 浏览

ruby - RabbitMQ/AMQP 未处理的通道错误 - NOT_FOUND

我正在尝试从 Ruby 脚本(使用Bunny )向 RabbitMQ 发布消息,并从 node.js 服务器(使用node-amqp)使用它们。

第一条消息成功到达,但随后在 node.js 中记录了一个错误,连接关闭,没有收到更多消息:

如果我将两条消息发布到交换中,然后运行 ​​node.js 服务器,我可以看到它们都在记录错误之前到达,这表明 RabbitMQ 在交换或队列为空时正在关闭它。但是,由于我在这两个上都将 autoDelete 设置为 false,所以它不应该。

有什么建议么?

我的 node.js 脚本看起来像这样:

我的 Ruby 脚本看起来像:

0 投票
4 回答
6731 浏览

activemq - 预建的 AMQP 和 STOMP 客户端(如 GUI 客户端)

我正在寻找一个客户端(如 GUI 客户端,而不是客户端库)来使用我们的 MQ 服务器并熟悉它的语义。只需按一下按钮(或文本命令)就可以发送和接收消息,甚至可能会向我更新服务器队列和消息的状态。管理将是一个奖金。UI 不必是图形的(即命令行客户端很好)。

服务器可能会运行 RabbitMQ,因此任何特定于 RabbitMQ 的东西都很好,ActiveMQ 也是如此。但我宁愿有一个通用的 AMQP 或 STOMP 工具。

那么,存在这样的东西吗?

我知道一些管理和监控工具都带有服务器发行版,但没有客户端,对吧?

0 投票
1 回答
686 浏览

xmpp - 像 yammer 这样的服务将如何使用 xmpp?xmpp 是否与队列交叉路径?

像 yammer 这样的服务将如何使用 xmpp?xmpp 是否与队列交叉路径?即可以使用rabbitmp 代替xmpp 还是它们完全不同?

0 投票
2 回答
5570 浏览

rabbitmq - RabbitMQ 上 celery 任务优先级的解决方法?

我在 RabbitMQ 上运行带有 Celery 的 Django 作为队列来处理一些数据处理任务。当用户第一次注册时,我会启动 celery 任务,并定期更新他们的数据。但是,我当然想优先考虑运行当前在线用户的任务。我注意到 celery 中的任务有优先级设置,但似乎 rabbitmq 不支持这一点。这个线程http://groups.google.com/group/celery-users/browse_thread/thread/ac3b6123d63421e5/b7740def1389e87e?lnk=gst&q=priority#b7740def1389e87e建议有两个不同的队列,一个高优先级和一个低优先级,或者设置一个较低优先级任务的速率限制。

有没有人有一个很好的解决方法来实现优先级?提前致谢!

0 投票
3 回答
15066 浏览

failover - 如何使 RabbitMQ 队列故障转移?

RabbitMQ 默认支持集群,但不会复制队列,而是绑定到创建它们的节点。我现在正在寻找使 RabbitMQ 高度可用的方法,而不是他们记录的 DRBD 解决方案,因为保留一个除了等待活动服务器关闭之外什么都不做的整个服务器似乎是一种资源浪费。

我正在考虑一个有两个队列的设置。发布消息时,我希望 RabbitMQ 集群将消息发送到两个队列中的任何一个,无论哪个队列已启动。我知道如果发布者尝试发布到已关闭的队列并且发布者可以使用另一个队列再次尝试,发布者会收到错误,但我想知道这是否可以在集群级别自动完成,以便我不不必编写客户端代码来处理它。这可以做到吗?

0 投票
2 回答
1415 浏览

c# - RabbitMQ 消息交换

我已经创建了一个 RabbitMQ 生产者和一个 RabbitMQ 消费者......

假设我的生产者产生 10 条消息。我如何从这 10 条消息中获取特定消息。

我想知道如何唯一标识一条消息并阅读或使用该消息。

0 投票
4 回答
36911 浏览

message-queue - 如何有选择地从 AMQP(RabbitMQ)队列中删除消息?

我想有选择地从 AMQP 队列中删除消息,甚至不阅读它们。

场景如下:

发送方希望基于 X 类型的新信息到达的事实使 X 类型的消息过期。因为订阅者很可能还没有消费 X 类型的最新消息,所以发布者应该删除以前的 X 类型消息并将最新的消息放入队列中。整个操作对订阅者应该是透明的——事实上他应该使用像 STOMP 这样简单的东西来获取消息。

如何使用 AMQP 做到这一点?或者也许在另一个消息传递协议中更方便?

我想避免复杂的基础设施。所需的整个消息传递就像上面一样简单:一个队列、一个订阅者、一个发布者,但发布者必须具有根据给定条件临时删除消息的能力。

发布者客户端将使用 Ruby,但实际上,一旦我发现如何在协议中执行它,我就会处理任何语言。

0 投票
3 回答
10006 浏览

c# - RabbitMQ C# API 基于事件的消息消费

这就是我们在通过订阅检索消息时所做的事情。我们使用 While 循环,因为我们希望消费者持续监听。如果我想让它甚至基于 ..那就是当新消息到达队列时只有消费者应该使用消息..或任何类似的事件..