未注册订户时akka pub sub的行为

未注册订户时akka pub sub的行为,akka,akka-cluster,Akka,Akka Cluster,我们计划在我们的项目中使用akka。我有以下两个问题。akka酒吧的子行为 如果发布者在任何参与者订阅之前就开始发送消息,该怎么办。在订阅者出现之前发布的消息会发生什么。这些会被默默地丢弃吗 如果订阅者参与者死亡怎么办?[根本没有订阅者]发布者发送的消息会在某个地方累积,还是会被发布子系统丢弃 消息路由当场决定:没有订户,没有发送。在工具箱中任意缓冲消息只会导致意外的内存中断。如果您想要缓冲,您必须显式地这样做 如果没有人订阅,则不会捕获消息。但如果你把事情安排好,那就不是问题了 对于第二个问题

我们计划在我们的项目中使用akka。我有以下两个问题。akka酒吧的子行为

  • 如果发布者在任何参与者订阅之前就开始发送消息,该怎么办。在订阅者出现之前发布的消息会发生什么。这些会被默默地丢弃吗

  • 如果订阅者参与者死亡怎么办?[根本没有订阅者]发布者发送的消息会在某个地方累积,还是会被发布子系统丢弃


  • 消息路由当场决定:没有订户,没有发送。在工具箱中任意缓冲消息只会导致意外的内存中断。如果您想要缓冲,您必须显式地这样做

    如果没有人订阅,则不会捕获消息。但如果你把事情安排好,那就不是问题了

    对于第二个问题,这取决于你所说的死亡是什么意思。演员死亡是演员永远离开的地方。这与参与者失败并重新启动不同。如果参与者在其主管中使用故障处理重新启动,它将保留其邮箱,因此不会丢失任何内容。只有当参与者完全死亡(而不是重新启动)时,它才会丢失邮箱

    因此,通过一个好的故障处理方案,您可以在大多数用例中跨参与者故障保存消息。只要让你的听众在演员heiarchy中处于更高的位置,并将所有可能失败的风险事情(如I/O)推到底部。查看错误内核模式,了解我的意思。这样,失败通常不会上升到足以让您丢失邮箱的高度

    因为它只是一次重启,所以它订阅的所有邮件仍然会出现在它的邮箱中并等待它