0

我是 ruby​​ on rails 开发人员。我在我的项目中使用 rabbitMQ 来处理一些数据,一旦数据进入队列。我正在使用 bunny gem 一个 rabbitMQ 客户端,它提供与 RabbitMq 交互的接口。

我的问题是,每当在处理来自队列的数据时发生异常或服务器意外停止时,我来自队列的消息都会丢失。

我想知道人们如何处理 rabbitMQ 队列中丢失的消息。有什么方法可以让这些消息返回进行处理。

4

1 回答 1

1

当消息丢失时,无法取回消息。也许您可以尝试在 RMQ 的数据库缓存中追踪一些条目——但这只是一个疯狂的猜测/长镜头,我认为这不会有帮助。

你未来需要做的是:

  • 如果您使用的是单个服务器:使队列和消息持久,并且仅在处理完消息后才在消费者端明确确认(因此关闭自动ACK标志)消息。
  • 如果您使用的是 RMQ 节点集群(当然建议完全避免这些情况):设置队列镜像

看看 RMQ持久性高可用性。

于 2016-10-16T14:10:34.097 回答