问题标签 [rabbitmq-exchange]

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 回答
3195 浏览

rabbitmq - RabbitMQ 备份特定队列中的消息

我有一个服务,它使用来自 RabbitMQ 队列的消息(发布到队列是通过主题交换完成的)。假设服务理论上可以失败并丢失其状态,备份所有消息以进行灾难恢复的可能性将派上用场。

想到的第一个想法是为主题交换添加另一个绑定,以便消息也发布到另一个队列,并创建一个自定义服务来备份将在该队列上侦听的消息。但这听起来很像是对轮子的潜在改造。有没有更简单的方法可以使用 RabbitMQ(插件/现有服务/等)来做到这一点?

0 投票
1 回答
700 浏览

rabbitmq - 什么是 RabbitMQ 中的联合和备用交换

我在这些交流中找到了两个链接。 https://www.rabbitmq.com/federated-exchanges.htmlhttps://www.rabbitmq.com/ae.html但无法理解作者的意思。有没有人知道与这两个交换和另一个问题有关的想法。

是否有任何交换,如果没有找到带有路由键的客户端,那么消息不会被丢弃,而是存储在队列中,当找到相关的路由键时,它就可以获取了?

0 投票
2 回答
866 浏览

rabbitmq - 知道任务在 RabbitMQ 中的位置

我打算将 RabbitMQ 用于一个项目,在该项目中,我需要在队列中每隔几秒就知道我的任务的位置。

假设我使用它来生成报告,如果有一个队列,那么我想在任务实际开始之前向用户显示他在队列中的位置。

这是我可以通过 RabbitMQ 实现的吗?

0 投票
1 回答
4935 浏览

rabbitmq - RabbitMQ - 如何联合/镜像消息

我设置了两个节点,A 和 B。两者都安装了联合插件的 RabbitMQ。

从 Web UI 中,我可以看到“联合状态”>“状态”在 A 和 B 上“正在运行”。

在 A 上,我创建了一个名为“test1”的队列。

在 B 上,我可以看到“test1”队列(从 A 复制)。

在 A 上,我添加了一条消息。

但是,消息不会出现在 B 上的复制队列中 - 消息保留在 A 上。

这是我在 A 和 B 上使用的策略:

rabbitmqctl set_policy --apply-to exchanges my-queue "test1" \ '{"federation-upstream-set":"all"}'

所以,就像这样:A(上游)-> B(下游)和 B(上游)-> A(下游)

我应该看到复制到 A 和 B 的消息吗?我是否错误配置了路线?

0 投票
1 回答
2971 浏览

callback - RabbitMQ 通过交换发布到多个队列仅发布到第一个队列

我想发布到绑定到交换的多个队列(扇出在这里不起作用,因为我只想发布到选择性队列而不是所有队列)

代码如下:

**deviceIDs**包含两个字符串Dush-Micromax and MyDesktop

由于分数低,我无法上传图像,但在服务器端创建了三个队列。上面的代码将创建的队列绑定到交换器。

我之前创建了两个消费者,如下所示:

我有两个消费者,即My-Consumer-Trial1 和 My-Consumer-Trial2

但是,我只在第一个消费者中接收数据,即:My-Consumer-Trial1。在仔细分析 rabbitMQ 管理控制台之后,似乎消费者没有发布到队列上,而第二次发布发生在一个新的队列上。所以我们总共有 三个队列,其中两个绑定到 EXCHANGE,一个在默认 EXCHANGE 下。

0 投票
1 回答
1079 浏览

php - 如何在网络浏览器上使用 php-amqplib rabbitMQ

我正在尝试使用 php-amqplib 发送和接收消息。它可以在终端上发送/接收。但是当使用网络浏览器时,无法从队列中接收它会不断等待消息。我用下面的代码来接收.php

如果我使用下面而不是回调函数,它会从队列中获取第一条消息,但不从队列中消耗

这意味着消息在队列“test22”中可用。给我任何线索。

0 投票
1 回答
3796 浏览

c# - Application异常关闭时删除RabbitMQ Queue

我正在使用.NET RabbitMQ Client图书馆。我想开发一个消息系统。为此,我已经实现了 RabbitMQ 的所有必要方法。此外,我还开发dispose()了删除队列。我在FormClosing事件中调用此方法,因此当用户通过单击关闭按钮关闭应用程序时将触发此方法,并且逻辑队列将被删除。到目前为止,所有代码都运行良好。

但我的问题是

我无法在关闭应用程序时删除队列而不单击关闭按钮(我们只是说从任务管理器或使用 taskkill 命令的命令提示符或任何异常原因关闭应用程序),因为这个 dispose() 不会触发。此时,队列不会被删除,直到我手动从管理门户中删除它。

所以我的问题是,

我如何知道应用程序已关闭并且可以删除孤立队列?

0 投票
1 回答
780 浏览

c# - 将消息插入到 RabbitMQ 中的特定队列

我是 RabbitMQ 的新手并尝试一下。在我的 RabbitMQ 服务器中,我设置了一个 Exchange (TestExch) 并创建了 2 个队列(TestQ 和 NewQ)。然后,我使用路由键(Q1 和 Q2)创建了从 TestExch 到队列的绑定。

这是我用来发布消息的 mt c# 代码:

但是当我发送消息时查看服务器时,我看到它被插入到两个队列中。

我究竟做错了什么?

0 投票
1 回答
62 浏览

java - java rabbitmq client v3.4.3中的getReplyQueue方法不再可用?

我使用的是 Rabbitmq 客户端 v3.3.4,它有 getReplyQueue() 方法,我用它来消费消息,如下所示:

现在,我将我的 rabbitmq 服务器升级到 3.4.3,所以我决定将 java 客户端库升级到 v3.3.4,但我发现 getReplyQueue() 方法不再存在于 RabbitMQ Java 客户端库中。

在这种情况下,我将如何获得回复队列?

谢谢!

0 投票
1 回答
76 浏览

rabbitmq-exchange - RabbitMQ 中标头交换的反向匹配

将队列绑定到标头交换时,我希望能够匹配不满足参数中指定条件的标头。

EG,然而,绑定的一些参数:{customer:“foo”}会给我所有标有此标头{“customer”:“foo”}的有效负载,我实际上想获得除“foo”之外的任何客户的流量”。我可以声明每个客户,但拥有“不”匹配设施会容易得多。