问题标签 [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 投票
3 回答
12792 浏览

python - 如何在 RabbitMQ 服务器上设置超时检测?

我正在使用这个python 绑定来尝试RabbitMQ 。

我注意到的一件事是,如果我不干净地杀死了一个消费者(模拟一个崩溃的程序),服务器会认为这个消费者仍然存在很长时间。这样做的结果是所有其他消息都将被忽略。

例如,如果您杀死消费者 1 次并重新连接,则将忽略 1/2 条消息。如果你杀死另一个消费者,那么 2/3 的消息将被忽略。如果您杀死 3rd,则 3/4 消息将被忽略,依此类推。

我试过打开确认,但它似乎没有帮助。我找到的唯一解决方案是手动停止服务器并重置它。

有没有更好的办法?

如何重新创建此场景

  • 运行rabbitmq。

  • 取消归档此库

  • 在此处下载消费者和发布者。运行 amqp_consumer.py 两次。运行 amqp_publisher.py,输入一些数据并观察它是否按预期工作。消息以循环方式接收。

  • 使用 kill -9 或任务管理器终止其中一个消费者进程。

  • 现在,当您发布消息时,将丢失 50% 的消息。

0 投票
1 回答
1101 浏览

amazon-ec2 - 如何在运行 RabbitMQ 实例的情况下正确为 EBS 卷创建快照?

我在 EC2 实例上使用 RabbitMQ,并且在 EBS 卷上有 Mnesia 表,因此当我对其进行快照并尝试使用相同数据启动另一个实例时,似乎该表正在被另一个 RabbitMQ 实例使用。

解决这个问题的唯一方法是关闭 RabbitMQ 以进行刷新/快照,然后在完成后重新启动它?

有没有办法清理文件,使它们看起来不被锁定或被强制解锁?

这不是我将面临的常见问题,只是好奇是否有更好的解决方案。

为了澄清,我看到的错误是:timeout_waiting_for_tables.

0 投票
4 回答
1341 浏览

php - PHP 应用程序的异步/企业消息传递

哪种消息传递平台是 PHP 和 Java 应用程序之间异步消息队列(发布、消费)的最佳选择?我看过 RabbitMQ、ActiveMQ、OpenAMQ、Tibco Rendezvous 和 Websphere MQ。需要坚持。我喜欢 AMQP 的想法并使用开放协议,但我听说过 RabbitMQ 的稳定性问题,这似乎是领先的 AMQP 实现。

消息负载不会达到“Twitter 风格”的规模,但会相当大并且需要非常高的可用性。

官方支持的 PHP API 肯定会获得积分。Java 和 PHP 系统都将积极生产和消费。

0 投票
1 回答
624 浏览

ubuntu-9.04 - 跨 2 台 ubuntu 9.04 机器的 rabbitmq 集群问题

我不断收到 cannot_to_contact_cluster_nodes 错误

有没有人早点看到并解决了这个问题?

我正在使用使用 ubuntu 存储库安装的 rabbitmq-server 1.5.4。我有一种预感,这与 ufw 或其他一些网络安全措施有关,在 ubuntu 中默认启用,这会阻止连接。

机器可以 ping 通(我在 /etc/hosts 文件中做了一个条目)

pgatram@mzl005:~$ ping mz005 PING mz005 (192.168.0.22) 56(84) 字节的数据。来自 mz005 (192.168.0.22) 的 64 个字节:icmp_seq=1 ttl=64 time=0.026 ms 来自 mz005 (192.168.0.22) 的 64 个字节:icmp_seq=2 ttl=64 time=0.023 ms ^C --- mz005 ping 统计信息 -- - 传输 2 个数据包,接收 2 个数据包,0% 数据包丢失,时间 999ms rtt min/avg/max/mdev = 0.023/0.024/0.026/0.005 ms

我无法让集群工作

pgatram@mzl005:~$ sudo rabbitmqctl cluster rabbit@mz005 Clustering node rabbit@mzl005 with [rabbit@mz005] ...错误:{unable_to_contact_cluster_nodes,[rabbit@mz005]}

0 投票
6 回答
5895 浏览

activemq - 商业消息中间件与开源的优势

我一直在评估几种开源消息队列技术,例如 RabbitMQ、ActiveMQ、OpenAMQ 等。我的问题是,使用 Tibco EMS、WebSphereMQ、Sonic 等商业技术而不是 Active 之类的技术可以获得什么好处还是兔子?PHP 将是主要涉及的语言,尽管 Java 系统也会进行交互。

0 投票
2 回答
10288 浏览

rabbitmq - AMQP中每个队列的唯一消息?

这与其他问题类似,但有一点不同:我在规范中读到 AMQP 消息的 message-id 应该由应用程序本身设置,所以理论上我可以使用它来保证一定程度的唯一性, 正确的?

我现在的主要问题是:该 message-id 在什么范围内保证是唯一的?对于当前在特定队列中排队的消息?在所有队列中?超越宇宙?:-)

这种行为是否标准化?我计划在这里使用 RabbitMQ,但是如果有一些不是供应商特定的东西会很好:-)

谢谢。

0 投票
1 回答
412 浏览

ruby-on-rails - 工作流程不可控制地增加

我们有一个在乘客上运行的 rails 应用程序,我们使用 RabbitMQ 和 Workling 的组合在后台处理一些任务。使用该script/workling_client命令启动 workling 的工作进程。总是只有一个工作进程启动,并且script/workling_client有一个:multiple => false选项,因此只允许一个实例。但有时,在我无法追踪的神秘情况下,会产生更多的工作人员。如果我让系统运行一段时间,就会出现越来越多的工作。我不确定这些流氓工作是否会导致任何问题,但不知道为什么会发生仍然令人不安。我们正在使用 Monit 来监控工作过程。所以如果它死了,它会再次产生它。但这仍然不能解释为什么突然多了一个。

所以我的问题是:有谁知道这可能是什么原因以及如何让它停止?是否有可能工作有时会自行死亡,而不删除它的 pid 文件?workling_client构建Daemons gem 会不会有什么问题?

0 投票
1 回答
3130 浏览

python - 如何使用 py-amqplib 在多个队列上等待消息

我正在使用py-amqplib在 Python 中访问 RabbitMQ。应用程序会不时收到监听某些 MQ 主题的请求。

第一次收到这样的请求时,它会创建一个 AMQP 连接和一个通道,并启动一个新线程来监听消息:

AMQPListener非常简单:

创建连接后,它订阅感兴趣的主题,如下所示:

第一次这一切都很好。但是,它在后续请求订阅另一个主题时失败。在后续请求中,我重新使用 AMQP 连接和 AMQPListener 线程(因为我不想为每个主题启动一个新线程)并且当我调用上面的代码块时,channel.queue_declare()方法调用永远不会返回。我还尝试在那时创建一个新频道,并且connection.channel()调用也永远不会返回。

我能够让它工作的唯一方法是为每个主题(即routing_key)创建一个新的连接、通道和侦听器线程,但这真的不理想。我怀疑是 wait() 方法以某种方式阻塞了整个连接,但我不确定该怎么做。当然,我应该能够使用单个侦听器线程接收具有多个路由键(甚至在多个通道上)的消息?

一个相关的问题是:当该主题不再感兴趣时,我如何停止侦听器线程?如果没有消息,channel.wait() 调用似乎会永远阻塞我能想到的唯一方法是向队列发送一条“毒化”它的虚拟消息,即。被听者解释为停止的信号。

0 投票
6 回答
21884 浏览

rabbitmq - 为什么使用 AMQP/ZeroMQ/RabbitMQ

而不是编写自己的库。

我们正在这里做一个项目,该项目将是一个自划分的服务器池,如果一个部分变得太重,经理会将它划分并作为一个单独的进程放在另一台机器上。它还会提醒所有连接的客户端连接到新服务器。

我很好奇使用 ZeroMQ 进行服务器间和进程间通信。我的搭档宁愿自己动手。我期待社区来回答这个问题。

我自己是一个相当新手的程序员,刚刚了解了消息队列。正如我用谷歌搜索和阅读的那样,似乎每个人都在使用消息队列来处理各种事情,但为什么呢?是什么让他们比编写自己的库更好?为什么它们如此普遍,为什么有这么多?

0 投票
1 回答
1190 浏览

php - 多消费者一队列

是否可以让多个消费者在 RabbitMQ 中共享一个队列?我目前正在使用这个php 库与 RabbitMQ 一起工作,据我观察,虽然我有 2 个相同的消费者脚本实例正在运行,但只有一个会响应传递的消息......