我试图理解Akka何时有用,特别是指消息传递的无保证性质。来自Akka docs:
如果你确实需要它[保证交付],通常你不会
问题是,我可以想到很少有可以接受丢失消息的情况。我到目前为止唯一的例子是:
第一个是请求响应模式,因此不是真正的消息传递,第二个是状态的只读数据流,而不是表示必须对其执行的业务事件的消息。
此外,通过声称保证交付太昂贵并始终倡导"告诉"他们的理念似乎与事件采购模式相矛盾(显然,保证交付对于事件采购至关重要,否则没有确定性的世界观)。
所以,问题是:如果您有订购的情况,保证交货很重要(客户的行动必须按客户订购并且明显有保证)Akka是否合适?为什么一些其他系统已经具有这些语义,如某种队列(Kafka,activemq等)?
Akka文档建议,应根据每个应用程序构建任何额外的保证。我的工作地点有类似的东西(保证消息传递层建立在无保证的传递语义之上),但这意味着所有的应用程序代码都与这一层交互,所以我不知道Akka提供的优势是什么在这种情况下的其他消息传递系统。
我发现很难相信人们不关心邮件是否传递,特别是在谈论建立信用卡交易处理系统等时。