【发布时间】:2020-10-28 07:45:06
【问题描述】:
我正在阅读本教程:https://doc.akka.io/docs/akka/current/typed/guide/tutorial_3.html,但不太明白什么时候最多一次消息语义更可取,因为虽然我们获得了性能提升,但我们失去了消息的弹性。看起来这里解释了这种权衡的理由:
我们只想在订单实际完全处理并保留后报告成功。唯一可以报告成功的实体是应用程序本身,因为只有它对所需的域保证有任何了解。没有通用的框架可以弄清楚特定领域的细节以及在该领域中什么被认为是成功的。 在这个特定的示例中,我们只想在数据库写入成功后发出成功信号,其中数据库确认订单现在已安全存储。由于这些原因,Akka 将保证责任提升到应用程序本身,即您必须使用 Akka 提供的工具自己实现它们。这使您可以完全控制要提供的保证。现在,让我们考虑 Akka 提供的消息排序,以便于推理应用程序逻辑。
,但我不太明白这是什么意思。感谢您在理解此决定或其他一些考虑因素方面提供的任何帮助。
我阅读了这个线程RPC semantics what exactly is the purpose,它似乎提供了一个关于最多一次语义的用例的明确定义,其中支付提交是您不想复制的示例。但是从上面引用的段落中,听起来消息将被发送到以太中,而不考虑确认消息传递成功或失败的 ack。我想知道最多一次语义的两种描述是否对它们各自的域都是正确的,如何通过来自 akka 的确认来获取另一个 stackoverflow 线程中的行为。
【问题讨论】:
标签: akka