问题标签 [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.
rabbitmq - 不在 RabbitMQ 上使用默认交换的原因?
我已经开始使用 RabbitMQ 并且我的用例非常简单 - 生产者将消息放在队列中以供消费者处理。每条消息最多由一个消费者处理,并且消息根据队列名称从生产者定向到消费者。
Direct
交换似乎对此非常好,default
交换就是direct
交换。
是否有任何理由(性能、管理、许可等)不使用default
交易所并创建自己的交易所?例如,我将使用高可用性队列 ( https://www.rabbitmq.com/ha.htmldefault
),并且不确定如果所有 HA 队列都在交换机上,是否会对集群产生任何负面影响而不是不同的交易所?
rabbitmq - NServiceBus RabbitMQ - DirectRoutingTopology 与每种消息类型的单独交换
我们在 MSMQ 之上使用 NServiceBus。现在我们正在着手使用 RabbitMQ——我们想要一个集中式队列,并发现 RabbitMQ 最能满足我们的需求。
转换我们的项目很容易,在 RabbitMQ 中,我们注意到它为每个端点和该端点中的消息类型创建了一个交换(和队列)。
我已经阅读了http://docs.particular.net/nservicebus/rabbitmq/configuration-api中的更改路由拓扑部分,它写在那里
对于不太复杂的场景,您可以使用 DirectRoutingTopology
文档未能解释的是将解决方案视为complex
.
我已经搜索并找不到解释什么被认为是复杂的地方,以及何时应该使用 aDirectRoutingTopology
而不是使用多个交换的默认选项。或者每种方法之间的区别/性能考虑是什么。
有人知道吗?
rabbitmq - Rabbitmq - 如何在交易所收听消息
我有一个 Java 程序,可以向 RabbitMQ 发送消息。我只知道交易所名称。没有队列、绑定等。
我的问题是:我怎样才能看到程序是否成功发送这些,只知道交换名称?
谢谢。
问候, 塞尔班
rabbitmq - 如何从 RabbitMQ 获取旧消息?
我正在使用 Bunny (Ruby) 发布 RabbitMQ 消息,如下所示:
并像这样订阅:
一旦我启动订阅者,它会立即接收发送的任何消息。但是,如果我在未启动订阅者的情况下发送消息,则在我启动订阅者时不会收到消息(无论发送者是否仍在推送消息)。
当没有订阅者收听时,是否可以通过队列返回并接收过去发送的消息?
rabbitmq - 你能联合“默认”交换吗?你应该联合“默认”交换吗?
我正在试验 RabbitMQ 和 Federation 插件。我想使用为双向上游配置的两个代理来测试 RabbitMQ 联合,但我的发送方/接收方 python 脚本使用“默认”交换......它没有得到联合。
你能联合“默认”交换吗?如果是,如何?另外,如果是,您是否应该(在最佳实践等方面)联合“默认”交换?
在短期内,我可能会创建一个新的“hello-exchange”,然后联合它并重新调整我的发送方/接收方以使用这个新的交换。
spring-boot - 为什么我不应该对所有事情都使用 rabbitmq 主题交换?
似乎工作模式、扇出和过滤主题都可以通过主题交换来实现。为什么我会改用直接或扇出交换?
我们希望将我们组织中发现的常见模式编入一个库中,该库抽象了 amqp 的无限灵活性(命名约定、默认为持久、发送通用标头、到期等)。我们应该利用不同的交换类型还是使用主题实现所有模式?为什么?
(我们在 Java 中通过 spring boot、golang 和 php 有消费者/发布者)
rabbitmq - 在消费者和生产者之间使用哪种类型的消息
我使用 RabbitMQ 作为消息代理。我有一个消费者和一个生产者。到目前为止,我已经创建了一个带有少量原始属性的有效负载。问题是,只要我需要来自消费者的有效负载的更多信息,我就需要更改有效负载以便我可以在消费者中处理:最后这项任务可能很繁重。
我想知道我是否可以使用某种地图作为有效负载,还是不推荐?像这样,我有一个通用的有效载荷。
另一方面,我们的应用程序中有 Serializable DTO。我想我可以创建一个包含 DTO 的有效负载?
我正在尝试找出最好的方法:)
java - 死信时如何在兔子消息上指定附加信息
我有一个兔子队列,里面有消费消息。我也有一个可能会失败的听众。该队列配置有死信交换(连同死信队列)。我想要的是在死信队列中的消息中查看异常信息。
以下是它目前的工作方式:
- 我将损坏的消息发送到我的正常队列。
- 我的监听器(我正在使用 Java 的 org.springframework.amqp.core.MessageListener)失败并出现类似:“java.lang.RuntimeException:消息损坏”
- 消息被拒绝并通过死信交换进入死信队列。
- 当我在 Rabbit Admin UI 中查看死信消息时,我看到: headers:
x-death:
reason: denied
但我想要的是在 UI 的某处看到“java.lang.RuntimeException:损坏的消息”。我认为它应该是一个自定义标题?
例如,是否可以为我的侦听器放置一个通用的 try-catch 并使用异常信息增强标头?
python - 使用 RabbitMQ - 多生产者和多消费者
我想知道是否可以有多个生产者和多个消费者?
例如:
-> 消费者 A 只接收来自生产者 A 的消息
-> 消费者 B 只接收来自生产者 B 的消息
或者我需要创建多个队列吗?
有人可以发布和示例吗?
c# - 使用主题交换,我们如何防止发布者收到发布者发送的消息?
我认为这是一个相当普遍的问题。
我正在使用 C# 和 Rabbit MQ 客户端。我有一个发布者向交易所发送消息。发布者队列和订阅者队列都通过路由键绑定到交换器。当发布者向 Exchange 发送消息时,所有订阅者队列都按预期接收消息,但发布者队列也接收到消息。
有没有可以用来防止这种情况的好的模式?