Akka Streams | 三个基本组件

176 阅读3分钟

阅读时间: 3 分钟

Akka是一个免费的开源工具包,简化了并发和分布式系统/应用的构建。我们已经处理过Akka Actors,在那里我们学习了Akka Actors和它们的行为。但是,行为者可以被视为处理数据序列,他们发送或接收一系列的消息。因此,在这篇博客中,我们将详细讨论Akka流。

什么是Akka Streams?

它是一个处理和传输数据序列的库,数据的大小可能不知道,也可能是无限的。Akka Streams的实现在内部使用Reactive Streams接口,在不同操作者之间传递数据。Akka Reactive是一个为异步流处理提供标准的倡议,具有非阻塞的背压。

为了在你的项目中引入Akka Stream,请在项目中的'build.sbt'文件中添加以下依赖。

library dependencieslibrary dependencies

这个依赖项将允许你访问丰富的Akka流库。在了解Akka流的组件之前,让我们先了解一些与之相关的术语。

1.流 --

一个涉及移动和转换数据的活动过程。

2.2.元素 -

流的处理单元被称为元素,用来表示缓冲区的大小。

3.3.背压 -

它意味着控制流,即理解为非阻塞和同步。

4.4.非阻塞 -

它表明一个进程不应该阻碍调用线程的进展,尽管它可能需要很长的时间来完成请求。

5.5.图形 -

图形被用来定义元素在流运行时的流动轨迹。

6.6.操作者 -

操作符是建立图的所有构建块的名称。

Akka流的组件 -

Akka Stream有许多组件,如Source、Sinks、Flows、Runnable graphs、Fault Tolerance、Graph、Fusing。我们将讨论其中的主要部分,具体如下

1.1.源 --

源是一个有确切的单一输出的阶段。它作为流的输入,其数量不是预先确定的,也可以是无限的。

每当下游操作者(Flow或Sink)准备消费或接收数据时,它就发射数据元素。源的类型可以是文件、集合和角色等。

一些类型的源已经在下面的片段中被定义。

2.汇 -

水槽是一个正好有一个输入的阶段。它作为流的一个端点。

这种类型的操作者请求并接受数据元素,可能会减慢元素的上游生产者。它可以将数据写到文件、数据库、REST API、集合等。

一些类型的汇已经在下面的片段中被定义。

3.流 -

流是一个有确切的一个输入和一个输出的阶段,因此可以作为一个源和汇。它被用来连接上游和下游,操作流经它的数据(转换、过滤等)。

每当一个流收到来自下游的需求时,它就将其传播到上游。它还通过减少或停止需求向上游传播背压。

一些类型的源已经被定义在下面的片段中。

下面是一个说明Akka流的示例代码。

Akka Stream CodeAkka Stream Code

这是一个简单的Akka流的代码,它连接了源、汇和流。

结论 --

在这篇博客中,我们已经了解了Akka流,他们的基本术语,组件和最后的简短代码演示。

分享一下Knol。

相关信息