![]() |
1
7
使用RabbitMQ,很容易在队列之间移动消息。通过安装
您还可以在RabbitMQ中创建调度好的铲,并根据该调度执行消息移动。在RabbitMQ中配置铲子的可见性对我们的操作人员来说是非常宝贵的,因为他们很少认为Windows Scheduled Task(或其他随机调度器)会像将以前失败的消息移回生产队列那样冒险。 我建议阅读这篇关于MassTransit如何处理有毒信息的博文: Error Handling in MassTransit with RabbitMQ RabbitMQ的工具比MSMQ提供的任何工具都要好得多,这也是我们完全放弃MSMQ进行生产排队的原因之一。 |
![]() |
2
2
只需RabbitMQ和一些代码,即可轻松地重新创建此功能。虽然NServicebus包含它很好,但使用MassTransit构建它应该很容易。 (注意:我已经几年没有使用.NET了,所以我对NSB和MT的了解有点生疏……这将是一个高级答案,没有代码) 首先,需要正确配置死信交换和有害消息队列。 https://www.rabbitmq.com/dlx.html 一旦您知道消息导致错误并且是错误消息,您可以拒绝或否定(无需重新排队)该消息,以便通过死信交换(DLX)发送它。 消息通过DLX后,您将拥有该消息的一些其他属性,包括:
还有更多,但这些是您需要注意的。通过检查消息的这些属性,您可以使用原始路由密钥通过原始交换重新发送原始消息。或者,您可以直接重新发送到原始目标队列……我个人认为,通过交换发送会更好,因为原始队列可能不再存在(取决于系统配置、消费者创建独占队列等)。 有了这些信息,重新创建特征集应该不会太困难。rabbitmq提供了您需要的所有功能,您只需编写一些代码就可以利用它。 |
![]() |
Denyk · ZeroMQ操作抛出EXC:[当前状态下无法完成操作] 7 年前 |
![]() |
Shubham Mishra · 执行多个芹菜工人以使用唯一队列 7 年前 |
![]() |
Tensho · 如何在RabbitMQ中发布数据库之间的数据更改? 7 年前 |
![]() |
George · MDB部署成功:然后甚至不会写入系统。出来为什么? 7 年前 |
![]() |
Nayeem · 使用JMS中的CCDT文件连接到IBM MQ 7 年前 |