交货保证
流引用将正常的演员消息传递用于他们的体育比赛,因此提供了相同水平的基本交付保证。流引用确实通过需求重新传递和顺序故障检测在某种程度上扩展了语义。换句话说:
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秒)。这样可以保证交货吗?
另外,作为附带问题。如果系统消息自动重新传递丢弃的消息,这是否意味着事件流可以保证传递?
[StreamRefs
当前(Akka 2.6.1)目前未实现任何可靠性,除了元素的序列号和需求重新信令:
接收方有一个缓冲区,万一发生流故障,在发送方从接收方看到故障信号之前,它中的所有元素以及所有正在运行的元素都将丢失(该信号通过网络,因此不是立即发生的) 。