问题标签 [easynetq]
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 - EasyNetQ - 带有主题的延迟消息
有没有办法使用 EasyNetQ 发布带有主题的延迟消息?我能够使用该FuturePublish
方法发送直接延迟消息,但它不允许我指定主题。
链接:
谢谢
c# - 异常时重新排队消息
我正在寻找一种可靠的方法来重新排队无法正确处理的消息 - 目前。
我一直在查看http://dotnetcodr.com/2014/06/16/rabbitmq-in-net-c-basic-error-handling-in-receiver/似乎支持在 RabbitMQ 中重新排队消息API。
但是我使用的是 EasyNetQ。所以想知道我会如何在这里做类似的事情。
这甚至是一个好方法吗?如果超过 RabbitMQ 服务器的等待超时,则消息不会ACK
导致问题。do work
ACK
easynetq - EasyNetQ - 基于原始队列的自定义错误队列名称
我想根据产生错误的队列名称在 EasyNetQ 中给出错误队列名称。例如,来自的所有错误消息QueueA
将转到QueueA.Error
;QueueB
消息将被重定向到QueueB.Error
,依此类推。
但是,ErrorQueueNamingConvention 没有像 ErrorExchangeNamingConvention 那样接收 MessageReceivedInfo 参数,因此我不知道原始队列的名称是什么。有没有办法得到它或任何解决方法?
谢谢
rabbitmq - RabbitMq 聚类
我是 RabbitMq 的新手。我无法理解这里的概念。请找到场景。
我有两台机器(RMQ1,RMQ2),我在两台正在运行的机器上都安装了rabbitmq。我再次集群 RMQ2 以加入 RMQ1
如果您在此处查看机器的状态,则如下所示
在 RMQ1 中
在 RMQ2 中
为了发布和订阅消息,我连接到 RMQ1。现在我看到每当我向 RMQ1 发送或发送消息时,我都会看到消息在 RMQ1 和 RMQ2 中镜像。我清楚地理解,由于两个节点都在同一个集群中,它们正在跨节点镜像。
假设我关闭了 RMQ2,我仍然看到消息被发布到 RMQ1。
但是当我关闭 RMQ1 时,我无法再发布消息了。由此我了解到 RMQ1 是主机,RMQ2 是从机。
现在我有以下问题,无需更改代码:
- 如何让 RMQ2 承担接受消息的工作。
- 高可用队列是什么意思。
- 实施这种情况的策略应该如何。
请帮忙
rabbitmq - EasyNetQ 使用二进制消息
我使用以下代码将原始消息发布到队列:
消息已传递到队列,我在 RabbitMQ 控制台的队列中看到一条消息。但是,当我尝试使用以下代码使用它时,我没有得到任何回报:
我可以看到消息是从 Rabbit 的控制台传递的,但没有打印出来,消息仍在队列中。我错过了什么?
c# - EasyNetQ - 通过非通用消息使用来自 IAdvanceBus 的消息
是的,我们可以通过这个订阅 ID 使用自动订阅功能和普通订阅方法,但是这个解决方案在 RMQ 队列和交换中有点难看。很难跟踪和分析这些信息。
我使用高级巴士并创建了自己的交换和队列。我成功发布了,但消耗部分有点失望。目前,它使用这种方式:
这很好,但如果你有一百个听众,问题就来了?
我检查了注册类型IHandlerRegistration它只使用通用的,我们可以有非通用的方式吗?
喜欢 :
通过这种方式,我们可以扫描使用此消息的程序集。
另一方面,我通过构建总线进行注册:
但它不尊重我的注册,因为当我看到高级总线消耗的代码时:消耗它从工厂创建的代码而不是从容器中读取的代码。我相信这是一个根本原因。
c# - RabbitMQ 中的消息持久化
我正在编写一个小应用程序,我在其中使用 RabbitMQ 发送/接收消息。一切正常,但我正在努力解决消息持久性问题。
即使在服务器重新启动时,我也希望消息保留在队列中。我理解交换和队列级别的持久性概念,并将它们设置为 true(而不是默认为 true)。所以当我重新启动我的 RabbitMQ 服务器时,交换和队列保持不变,但队列中的消息被删除。
我正在使用 EasyNetQ.IBus 接口发送消息。
谢谢
c# - 来自工厂方法的 Autofac 单例
我几乎正在寻找一个使用 Castle Windsor实现的Autofac 端口。这IBus
是 EasyNetQ 库提供的接口,我想注册一个工厂,将 IBus 实例实例化为单例。BusBuilder.CreateMessageBus
是工厂方法。温莎城堡的例子:
rabbitmq - EasyNetQ 支持 nack 吗?
我真正想做的是在当前消费者拒绝消息的情况下将消息留在队列中。在 RabbitMQ 中,我可以发送一个 NACK 来完成此操作。EasyNetQ 是否支持 NACK?有没有另一种方法来实现我正在寻找的行为?
更新:回复不多,所以我想知道人们通常如何处理 EasyNetQ 中缺少 NACK。没有相当于basic.reject
将消费者限制为“我总是可以处理每条消息”的场景。我想消费者可以抛出一个特定的“被拒绝”异常来导致 EasyNetQ 将消息出列到错误队列中,并且我可以将带有这些错误的消息重新排队。还有其他人有其他解决方法吗?
easynetq - EasyNetQ - 如何在 EasyNetQ_Default_Error_Queue 消息中包含原始队列名称?
当使用发布者/订阅者模式并且在订阅者处理期间抛出异常时,EasyNetQ 默认情况下会在 EasyNetQ_Default_Error_Queue 中放置一条消息。
问题是我在错误消息中只有原始交换名称。我真正需要的是原始队列名称,因此我可以将消息重新发布到队列,而不是交换。
如何在错误消息中包含队列名称?
EasyNetQ_Default_Error_Queue 中的示例错误消息: