Reliable delivery

警告
此模块当前被标记为可能会更改,因为它是一项新功能,需要根据实际使用反馈的情况确定最终API。这意味着API或语义可以更改,而不会发出警告或弃用期限。还不建议您在生产中立即使用此模块。

模块信息

要使用可靠的交付,请将模块添加到您的项目中:

介绍

正常的消息传递可靠性最多只能传递一次,这意味着消息可能会丢失。那应该很少见,但仍然可能。

对于某些actors之间的交互,这是不可接受的,并且需要至少一次交付或有效一次处理。此处介绍的可靠交付工具有助于实现这一目标。没有应用程序的协作,它不可能在幕后自动实现。这是因为确认消息何时已被完全处理是业务级别的问题。仅确保将其通过网络传输或传递到参与者的邮箱是不够的,因为参与者可能在处理消息之前就崩溃了。

根据需要检测,重新发送和删除重复邮件。此外,它还包括用于消息发送的流控制,以避免快速生产者淹没较慢的用户或以比可以通过网络传输的消息更高的速率发送消息。这可能是参与者之间交互中的常见问题,会导致致命错误,例如OutOfMemoryError,因为参与者的邮箱中排队的邮件过多。丢失消息的检测和流控制是由用户方驱动的,这意味着生产方方的发送速度不会快于用户方的要求。除非消费者方要求,否则生产者方不会推送重发。

有3种受支持的模式,以下各节中进行了介绍:

点对点
工作拉
分片

你可能感兴趣的:(akka,cluster)