【问题标题】:How to handle failed publish with RabbitMq?如何使用 RabbitMq 处理失败的发布?
【发布时间】:2018-04-25 20:30:40
【问题描述】:

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

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

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

【问题讨论】:

    标签: rabbitmq message-queue easynetq


    【解决方案1】:

    一般来说,如果您想确定发布信息,可以使用publish confirmation

    如您所见,您可以使用事务或使用 ConfirmListener 来做到这一点。

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

    注意:我不知道 EasyNetQ 是如何工作的,但是原生发布是异步的,所以捕获发布异常是不够的。这就是为什么你应该使用发布确认来处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-04
      • 2016-01-16
      • 2016-11-06
      • 2019-03-04
      • 1970-01-01
      • 2017-09-19
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多