问题标签 [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 路由键不路由
我正在尝试用 RabitMQ 做一个简单的消息队列我用 create_message 推送消息
然后尝试通过路由键获取消息。
当路由键相同时效果很好。问题是当路由键不同时,我不断收到错误路由键的消息:例如
我的输出示例:'11':'Hello World1111!'
我究竟做错了什么?
tnx 寻求帮助
rabbitmq - 当从 RabbitMQ 添加/删除交换时通知?
当从 RabbitMQ 添加和删除交换时,是否有可能以某种方式得到通知?我想在有兴趣知道这一点的远程机器上有一个“客户端”,最好不使用轮询。这样做的原因是订阅 RabbitMQ 中的所有消息(从而让客户端为每个新交换创建一个新队列)以持久保存消息。
c# - RabbitMQ basic.return
如果我使用确认(model.ConfirmSelect)AKA basic.ack 和强制标志发布。如果消息未传递,我是否总是在 basic.ack 事件之前获得 basic.return 事件。
我想将所有 basic.return 消息添加到 ConcurrentDictionary 并在发布后检查消息是否在字典中我会抛出异常,即不存在队列/路由,并在错误或成功时将其删除。
rabbitmq - RabbitMQ 使用 ldap 插件过滤用户访问
我目前有 ldap 插件在 Rabbit 中工作,它将登录我域中的任何用户。这是问题所在,它为每个用户都这样做。
我希望能够将 rabbitmq 管理门户访问限制为 AD 中的 1 或 2 个特定组。更进一步,我只希望这两个组在 Rabbit Portal 内拥有完全控制权(创建交换/虚拟主机/队列/其他)。下面我只是尝试用 1 个组来执行此操作。我怎样才能做到这一点与 2 组?我{resource_access_query,}
要为第二个添加另一个块吗?
这是我当前的配置:
即使这样,它仍然会在DC=hq,DC=domain,DC=com
...的基本 dn 上登录任何人,就好像它没有看到我提供的 DN 路径。有任何想法吗?谢谢!
rabbitmq - rabbit mq 的负载均衡选项
rabbitMQ 有哪些可用的负载平衡选项。我已经浏览了文章http://insidethecpu.com/2014/11/17/load-balancing-a-rabbitmq-cluster/。有没有其他方法可以做到?我们只有一个队列,它镜像了两个节点,我们需要对它们进行负载平衡
rabbitmq - 为什么我们需要 RabbitMQ 中的路由键?
为什么我们需要路由键来将消息从交换机路由到队列?我们不能简单地使用队列名称来路由消息吗?此外,在发布到多个队列的情况下,我们可以使用多个队列名称。谁能指出我们实际上需要路由键和队列名称还不够的情况?
java - RabbitMQ,如何在重新排队尝试后删除消息
我正在尝试通过使用 RabbitMQ 和 JAVA 来构建一种异步服务器。我有两个交易所 Original_Exch 和 Dead_Exch,每个都有一个队列。两个交换都被声明为 DLX(彼此队列的死信交换)。
现在问题来了,我以 json 字符串的形式向 Original_Exch 发布了一条消息,其中包含电子邮件信息(如收件人、主题、消息正文、附件等)。从绑定到 Original_exch 的队列中使用此消息后,我正在向指定的电子邮件地址发送电子邮件。如果电子邮件未成功发送,我会将此消息传输到 Dead_Exch,2 秒后(为此使用 TTL),该消息将再次传输到 Original_Exch。
让我们假设一个特定的消息由于连续失败而从一个交换移动到另一个交换的场景。在这种情况下,我想确保如果它已被转移到 Original_Exch 10 次,它应该从队列中永久删除(删除)并且不应该转移到 Dead_Exch。
几乎类似的问题有很多答案,但没有一个是令人满意的(从学习者的角度来看)。
谢谢..........
go - Go 中的 RabbitMQ 消费者
我正在尝试用 Go 编写一个 RabbitMQ 消费者。假设一次从队列中取出 5 个对象并处理它们。此外,假设确认是否成功处理,否则发送到死信队列5次然后丢弃,它应该无限运行并处理消费者的取消事件。我有几个问题:
- RabbitMq-go Reference中是否有
BasicConsumer
vs的概念?EventingBasicConsumer
- RabbitMQ 中有什么
Model
,RabbitMq-go 中有什么? - 如何在死信队列失败时发送对象并在之后再次重新排队
ttl
- 下面代码
consumerTag
中函数中参数的意义是什么ch.Consume
- 我们应该在这种情况下使用
channel.Get()
or吗?channel.Consume()
为了满足上述要求,我需要在以下代码中进行哪些更改。我问这个是因为我找不到 RabbitMq-Go 的像样的文档。
编辑问题:
我已经按照链接link1 link2中的建议延迟了消息的处理。但问题是,即使在 ttl 之后,消息也会从死信队列返回到其原始队列。我正在使用RabbitMQ 3.0.0
. 谁能指出是什么问题?
rabbitmq - 如何在 RabbitMQ 中对消费者进行分组?
我们正在编写邮件同步系统,为此我们使用 RabbitMQ。每个生产者推送邮件 id,然后消费者获取 id 并将邮件插入数据库。在我们有 100 个消费者(例如)并且生产者生成 id 太快的情况下,每个消费者都会获得 id 并使用 api 来获取邮件,因此对 api 的并发请求限制会例外。
Сan 我们限制每个生产者的消费者(例如,如果最多 3 个消费者将接收一个生产者的 id,那么接下来的 3 个消费者将从另一个生产者接收,依此类推)?
rabbitmq - 在 ttl 之后,死信消息没有重新排队到原始队列
我计划通过遵循这两个链接link1 link2来延迟队列中消息的处理。因此,正如链接中所建议的那样。我已经用x-dead-letter-exchange
和x-dead-letter-routing-key
args 声明了原始队列。dead-letter-queue
当消息未能被消费者处理或发生 ttl 或队列长度超过时,哪个将消息发布到所谓的消息。现在在dead-letter-queue
类似的参数中已经设置了ttl
参数。假设在ttl
超出后将消息重新发布到原始队列。但问题是它正在丢弃所有消息。
此外,这里有一个问题。如果我将失败的消息从原始队列显式发布到死信队列。然后在 ttl 之后将消息重新发布到原始队列。为什么会这样,我如何使它工作。这样死信队列会将消息重新发布到原始队列而不是丢弃。我正在使用RabbitMQ 3.0.0
.
仅供参考,我已经创建了direct
类型交换和路由密钥