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

rabbitmq - 不在 RabbitMQ 上使用默认交换的原因?

我已经开始使用 RabbitMQ 并且我的用例非常简单 - 生产者将消息放在队列中以供消费者处理。每条消息最多由一个消费者处理,并且消息根据队列名称从生产者定向到消费者。

Direct交换似乎对此非常好,default交换就是direct交换。

是否有任何理由(性能、管理、许可等)不使用default交易所并创建自己的交易所?例如,我将使用高可用性队列 ( https://www.rabbitmq.com/ha.htmldefault ),并且不确定如果所有 HA 队列都在交换机上,是否会对集群产生任何负面影响而不是不同的交易所?

0 投票
1 回答
353 浏览

rabbitmq - NServiceBus RabbitMQ - DirectRoutingTopology 与每种消息类型的单独交换

我们在 MSMQ 之上使用 NServiceBus。现在我们正在着手使用 RabbitMQ——我们想要一个集中式队列,并发现 RabbitMQ 最能满足我们的需求。

转换我们的项目很容易,在 RabbitMQ 中,我们注意到它为每个端点和该端点中的消息类型创建了一个交换(和队列)。

我已经阅读了http://docs.particular.net/nservicebus/rabbitmq/configuration-api中的更改路由拓扑部分,它写在那里

对于不太复杂的场景,您可以使用 DirectRoutingTopology

文档未能解释的是将解决方案视为complex.

我已经搜索并找不到解释什么被认为是复杂的地方,以及何时应该使用 aDirectRoutingTopology而不是使用多个交换的默认选项。或者每种方法之间的区别/性能考虑是什么。

有人知道吗?

0 投票
3 回答
3309 浏览

rabbitmq - Rabbitmq - 如何在交易所收听消息

我有一个 Java 程序,可以向 RabbitMQ 发送消息。我只知道交易所名称。没有队列、绑定等。

我的问题是:我怎样才能看到程序是否成功发送这些,只知道交换名称?

谢谢。

问候, 塞尔班

0 投票
2 回答
4654 浏览

rabbitmq - 如何从 RabbitMQ 获取旧消息?

我正在使用 Bunny (Ruby) 发布 RabbitMQ 消息,如下所示:

并像这样订阅:

一旦我启动订阅者,它会立即接收发送的任何消息。但是,如果我在未启动订阅者的情况下发送消息,则在我启动订阅者时不会收到消息(无论发送者是否仍在推送消息)。

当没有订阅者收听时,是否可以通过队列返回并接收过去发送的消息?

0 投票
1 回答
90 浏览

rabbitmq - 你能联合“默认”交换吗?你应该联合“默认”交换吗?

我正在试验 RabbitMQ 和 Federation 插件。我想使用为双向上游配置的两个代理来测试 RabbitMQ 联合,但我的发送方/接收方 python 脚本使用“默认”交换......它没有得到联合。

你能联合“默认”交换吗?如果是,如何?另外,如果是,您是否应该(在最佳实践等方面)联合“默认”交换?

在短期内,我可能会创建一个新的“hello-exchange”,然后联合它并重新调整我的发送方/接收方以使用这个新的交换。

0 投票
1 回答
1441 浏览

spring-boot - 为什么我不应该对所有事情都使用 rabbitmq 主题交换?

似乎工作模式、扇出和过滤主题都可以通过主题交换来实现。为什么我会改用直接或扇出交换?

我们希望将我们组织中发现的常见模式编入一个库中,该库抽象了 amqp 的无限灵活性(命名约定、默认为持久、发送通用标头、到期等)。我们应该利用不同的交换类型还是使用主题实现所有模式?为什么?

(我们在 Java 中通过 spring boot、golang 和 php 有消费者/发布者)

0 投票
1 回答
37 浏览

rabbitmq - 在消费者和生产者之间使用哪种类型的消息

我使用 RabbitMQ 作为消息代理。我有一个消费者和一个生产者。到目前为止,我已经创建了一个带有少量原始属性的有效负载。问题是,只要我需要来自消费者的有效负载的更多信息,我就需要更改有效负载以便我可以在消费者中处理:最后这项任务可能很繁重。

我想知道我是否可以使用某种地图作为有效负载,还是不推荐?像这样,我有一个通用的有效载荷。

另一方面,我们的应用程序中有 Serializable DTO。我想我可以创建一个包含 DTO 的有效负载?

我正在尝试找出最好的方法:)

0 投票
1 回答
2566 浏览

java - 死信时如何在兔子消息上指定附加信息

我有一个兔子队列,里面有消费消息。我也有一个可能会失败的听众。该队列配置有死信交换(连同死信队列)。我想要的是在死信队列中的消息中查看异常信息。

以下是它目前的工作方式:

  1. 我将损坏的消息发送到我的正常队列。
  2. 我的监听器(我正在使用 Java 的 org.springframework.amqp.core.MessageListener)失败并出现类似:“java.lang.RuntimeException:消息损坏”
  3. 消息被拒绝并通过死信交换进入死信队列。
  4. 当我在 Rabbit Admin UI 中查看死信消息时,我看到: headers:
    x-death:
    reason: denied

但我想要的是在 UI 的某处看到“java.lang.RuntimeException:损坏的消息”。我认为它应该是一个自定义标题?

例如,是否可以为我的侦听器放置一个通用的 try-catch 并使用异常信息增强标头?

0 投票
2 回答
1142 浏览

python - 使用 RabbitMQ - 多生产者和多消费者

我想知道是否可以有多个生产者和多个消费者?

例如:

-> 消费者 A 只接收来自生产者 A 的消息

-> 消费者 B 只接收来自生产者 B 的消息

或者我需要创建多个队列吗?

有人可以发布和示例吗?

0 投票
1 回答
53 浏览

c# - 使用主题交换,我们如何防止发布者收到发布者发送的消息?

我认为这是一个相当普遍的问题。

我正在使用 C# 和 Rabbit MQ 客户端。我有一个发布者向交易所发送消息。发布者队列和订阅者队列都通过路由键绑定到交换器。当发布者向 Exchange 发送消息时,所有订阅者队列都按预期接收消息,但发布者队列也接收到消息。

有没有可以用来防止这种情况的好的模式?