Akka远程消息传递究竟有多不可靠?

时间:2014-01-31 11:20:31

标签: akka

我参与了一个看起来非常适合Akka演员的应用程序的设计。在该系统中,并非所有消息都需要可靠地传递。在某些情况下,丢失信息的后果相对较小,在其他情况下,后果会有些严重。

我从Akka文档中了解到远程消息传递不可靠,并且存在提供可靠消息传递的模式。

然而,在某些情况下,还有其他方法可以处理交付失败,特别是如果它不是常见的情况。我想知道实际上消息传递的不可靠性,典型配置和标准传输。

我正在寻找以下内容:

  • TCP传输与底层TCP连接一样可靠
  • TCP传输有时会因设计错误而失败
  • TCP传输将在重负载下丢弃消息
  • TCP传输将在连接失败时重试消息
  • UDP传输与UDP消息传递一样可靠
  • UDP传输将丢弃无序到达的消息
  • UDP传输将重试消息,直至达到配置的限制
  • 邮件传递失败几乎总是会在监视的演员身上触发Terminated条消息

如果它取决于配置,它依赖于什么?

1 个答案:

答案 0 :(得分:5)

  • TCP传输与底层TCP连接一样可靠

  • TCP传输有时会因设计错误而失败

    没有

  • TCP传输将在重负载下丢弃消息

    没有

  • TCP传输将在连接失败时重试消息

    Akka 2.2.3尝试这样做,但该功能在2.3.0-RC1中删除了,因为它引起的混乱比它帮助的更多。

  • 消息传递失败几乎总是会在被监视的角色上触发终止消息

    终止与演员的手表有关,而不是交付失败。 例如,如果您有短暂的网络故障,则可能会丢失消息,但如果它足够短,则不会触发终止。