交货保证
流裁判将正常的演员消息传递用于他们的火车比赛,因此提供了相同水平的基本交付保证。流引用确实通过需求重新传递和顺序故障检测在某种程度上扩展了语义。换句话说:
messages are sent over actor remoting
which relies on TCP (classic remoting or Artery TCP) or Aeron UDP for basic redelivery mechanisms
messages are guaranteed to to be in-order
messages can be lost, however:
a dropped demand signal will be re-delivered automatically (similar to system messages)
a dropped element signal will cause the stream to fail
看完这篇文章,我很好奇。那么akka流是否提供有保证的交付。 例如。一堆参与者将事件存储在日记中,该事件向另一个参与者馈送了一个将消息批量处理的流(例如,对于最多1000条消息,流为1秒)。这样可以保证交货吗?
此外,作为附带问题。如果系统消息自动重新传递丢弃的消息,这是否意味着事件流可以保证传递?
答案 0 :(得分:0)
StreamRefs
当前(Akka 2.6.1)除了实现元素的序列编号和需求重新信令外,目前未实现任何可靠性:
接收方有一个缓冲区,万一发生流故障,在发送方看到接收方的故障信号之前,该流中的所有元素以及正在运行的所有元素都会丢失(该消息通过网络,所以不是立即发送的) )。