如何使用RabbitMq处理失败的发布?

时间:2016-12-19 10:35:43

标签: rabbitmq message-queue easynetq

我们计划将RabbitMq用于我们的消息传递服务,我们将所有消息请求发布到RabbitMq持久队列。

对于.Net客户端,我们决定使用EasyNetQ,所以问题是我们应该如何在发布消息时处理RabbitMq服务器?

  • 我们应该捕获异常并将消息保存到数据库和 用预定的工作重新发布?
  • 我们应该使用断路器吗?
  • 还是其他什么?我想听听你的经历。

1 个答案:

答案 0 :(得分:3)

一般情况下,如果您想确定发布,可以使用publish confirmation

你可以阅读,你可以使用交易或使用ConfirmListener。

要处理代理失败,您可以在本地存储失败的消息,然后尝试在x秒后重新发送它们。

注意: 我不知道EasyNetQ是如何工作的,但本机发布是异步的,因此陷阱发布异常是不够的。这就是为什么你应该使用发布确认来处理它。

相关问题