当AMQP服务器重新启动时,Akka流停止

时间:2017-06-13 08:06:51

标签: scala rabbitmq akka akka-stream alpakka

使用Alpakka AMQP连接器和Akka Streams,我遇到了一个非常奇怪的问题。

当我的RabbitMQ消息代理重新启动时,源似乎重新启动正常。但是,一旦重新启动,流就永远不会完成,并且消息会在流中更远的分区中丢失。当我启动AMQP服务器时,我的Akka应用程序工作正常,但一切都搞砸了。

以下是我初始化AMQPSource的方法:

val amqpMessageSource = builder.add {
  val amqpSource = AmqpSource(
    NamedQueueSourceSettings(connectionDetails, amqpInMessageQueue).withDeclarations(queueDeclaration),
    bufferSize = 10
  ).map { message =>
    fromIncomingMessage(message)
  }.initialDelay(5.seconds)
  amqpSource.recoverWithRetries(-1, { case _ => amqpSource }) // Retry every 5 seconds an infinity of times
}

我试图删除发生问题的分区,将流直接发送到与我的示例相关的流,甚至更奇怪:在这种情况下,AMQP客户端甚至不读取来自RabbitMQ的消息了。

我显然在这里遗漏了一些东西,但我尝试了许多不能解决我问题的不同事情。

0 个答案:

没有答案