Roiocam / akka-learnning-notes

akka learnning notes
2 stars 2 forks source link

Akka Stream #11

Closed Roiocam closed 7 months ago

Roiocam commented 1 year ago
Roiocam commented 1 year ago

Motivation

现代计算机体系中将数据作为元素流而不是整体来传输非常有用,这符合计算机发送和接收它们的方式(TCP),在数据集变得庞大而无法作为整体时也十分有用。

Actor 之间的消息交互也可以视为流,但是在 Actor 之间以合适的措施实现稳定的流式传输是乏味并且容易出错:

  1. 发送和接收机制
  2. 消息传输过程中 buffer 和 mailbox 的溢出问题
  3. 消息可能丢失,必须建立重试机制

因此,将这些问题的终极解决方案捆绑为一个 Akka Stream API,例如传播和对背压做出反应的难题已经在 Akka Stream 内部设计并实现了。

Akka Stream 专注于数据流传输传唤的制定,Reactive Streams 定义了一种通用机制,定义如何在不丢失、缓冲和资源耗尽的情况下跨异步边界移动数据。