问题标签 [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 回答
1415 浏览

c# - RabbitMQ 消息交换

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

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

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

0 投票
2 回答
4067 浏览

.net - 是否可以在 RabbitMQ 中使用交换?

也许我在这里问错了问题。

我正在尝试做的事情:多个生产者将动态类别中的数据推送到命名交换中。多个消费者需要从这些动态命名的队列中获取这些数据并对其进行操作。

问题是我看到的所有消费示例都要求消费者/订阅具有特定的队列名称,而我的消费者不知道队列的名称,他们也不需要知道这一点。

我为什么要这样做?两个原因:

  1. 我一次可以拥有 N 个这些动态类别。我希望队列能够平等地为这些类别服务。目前我们有一个队列(msmq),它接受所有这些类别并在 FIFO 中为它们提供服务(这意味着某些类别在一段时间内处于饥饿状态)。

  2. 能够平等地为所有类别提供服务,而不是先进先出,让我想出了有趣的 QoS(默认情况下,我知道 Rabbit 将循环提供消息)。

所以,回到我的问题(如果它有效的话):是否可以使用队列中的消息?

0 投票
5 回答
42468 浏览

rabbitmq - RabbitMQ 中的主题交换与直接交换

我们有一个将使用 RabbitMQ 的应用程序,并且有几个不同的队列用于在层之间传递消息。

最初,我计划使用多个直接交换,每种消息类型一个,但看起来使用不同路由键绑定的队列与单个主题交换将实现相同的目标。

拥有一个单一的交换似乎也更容易维护,但我想知道以一种方式而不是另一种方式这样做是否有任何好处(如果有的话)?

选项 1,使用多个直接交换:

选项 2,使用单一主题交换:

0 投票
1 回答
2090 浏览

python - 与 Celery 和 RabbitMQ 的主题交流

我对设置主题交换的配置应该是什么样子有点困惑。

http://www.rabbitmq.com/tutorials/tutorial-five-python.html

这就是我想要完成的:

然后:

我只希望 Task1 从 QueueOne 消费,而 Task2 从 QueueTwo 消费。

现在的问题是,当 Task1 和 2 运行时,它们也会耗尽 QueueFirehose,而 TaskFirehose 任务永远不会执行。

我的配置有问题,还是我误解了什么?

0 投票
1 回答
7410 浏览

rabbitmq - rabbitmq的兑换次数有限制吗?

在文档或谷歌上找不到任何关于此的内容,除了它应该绑定到服务器的可用资源。

有没有人有过在工作环境中一次进行大量交流的经验?仅仅创建交换不应该是问题(直到达到内存限制),而是在具有高消息吞吐量和主要动态交换创建/删除的工作项目中使用它。

0 投票
1 回答
228 浏览

java - RabbitMQ N 交换测试

我对 RabbitMQ 还很陌生,我计划编写一些测试来了解 RabbitMQ 中的消息系统如何随着使用的交换数量而扩展。特别是我很想知道增加N 次交换将如何影响 CPU、内存和 IO 使用率。

我注意到 RabbitMQ 附带了一个 rabbitmqct1.bat 应用程序,它有一个状态命令,可以输出系统相关信息。我遇到的问题是决定何时在消息传递周期中运行基准测试实用程序。

我应该在向交易所发布消息时运行它吗?或者在我将队列绑定到交换机时运行它?或者当消息从交易所推送到队列时?

干杯。

0 投票
1 回答
1292 浏览

java - 测试 RabbitMQ 交换

我正在尝试编写一个应用程序来测试将 N 个交换绑定到内存、IO 等相同队列的效果。

测试都使用“主题”交换类型。我遇到的问题是,当我使用超过 1 个交换进行测试时,我没有收到我发布回来的所有消息。但是,当我使用 1 个交换器时,我会收到所有消息。

任何想法为什么会这样?

谢谢。

编辑:

我有一个使用相同绑定键绑定到两个“主题”交换的队列:

  • *.system.log.#
  • #。系统错误

我向每个交易所发布两条消息,如下所示:

  1. 交换 0

    • [正文] 消息 0 [路由密钥] #.system.error
    • [正文] 消息 1 [路由密钥] *.system.log.#
  2. 交换 1

    • [正文] 消息 0 [路由密钥] #.system.error
    • [正文] 消息 1 [路由密钥] *.system.log.#

我有一个消费者正在收听队列,但只收到以下消息:

  • 带有路由密钥 (*.system.log.#) 的消息,来自交换 0,正文为“消息 1”
  • 带有路由密钥 (*.system.log.#) 的消息,来自交换 1,正文为“消息 1”

有任何想法吗?

0 投票
3 回答
5079 浏览

rabbitmq - Rabbitmq 绑定交换到交换

我正在寻找一种方法来保护我的网站消息系统,以便用户只能获取他们应该有权访问的数据。考虑到这一点,我想到了一个系统,其中我有一个主主题交换,我的服务器会将所有消息发送到该交换。

该网站为每个用户保存一个 sessionId。当用户通过身份验证时,会创建另一个名为 sessionId 的交换。客户端用户可以绑定到除主服务器之外的所有交易所。由于 sessionID 是唯一的,因此很难猜测其他用户的 sessionID 并绑定以获取他们的消息。

每条消息都会有一个 sessionID.destination 的路由键。客户端将知道所有潜在的目的地。

为了帮助可视化:

我的问题是两方面的。是否可以将交换绑定到rabbitmq中的交换?另外,以前有人设置过这样的系统吗?相反,在这个主题上有经验的人是否已经有一个我可以使用的工作系统?

提前致谢。

0 投票
1 回答
6521 浏览

rabbitmq - RabbitMQ 扇出交换问题

我可以使用Publish/Subscribe RabbitMQ Java 教程创建一个扇出交换,并且任何连接的消费者都将收到一条消息的副本。我不想以动态/编程方式声明交换和绑定,而是想在连接任何消费者之前创建交换和绑定。我通过 RabbitMQ 管理控制台完成了这项工作。然而,出于某种原因,我的消费者以循环方式接收消息,而不是所有接收消息的副本。我错过了什么?以下是一些代码片段:

出版商:

消费者:

...在 RabbitMQ 管理控制台中,我创建了一个类型为“fanout”的交换“公共”,并将该交换的绑定设置为“myqueue”。

我会很感激任何帮助!

0 投票
3 回答
80503 浏览

rabbitmq - 消息、队列和交换的限制是什么?

  1. 允许的消息类型是什么(字符串、字节、整数等)?
  2. 消息的最大大小是多少?
  3. 队列和交换的最大数量是多少?