akka中有个Mailbox,里面有个队列用来存放未执行的消息,actor的机制有个假设消息队列长度是无限的,这就有个问题,这样内存大小
就会无法控制,导致内存溢出。虽然它内部提供了有边界队列。但是当边界队列满了后是报错还是阻塞,都不是一种比较好的选择。 阻塞会降低线程利用率,报错会造成程序复杂度的提升,逻辑无法控制。
akka-stream很好的解决了akka消息队列的大小问题,当然这只是它的设计机制的一部分。因为它和akka没有什么可比性,akka只是作为 akka-stream线程执行的底层工具。