Scala In ActionAkka

基础和使用流(akka)

2017-01-31  本文已影响137人  吕亦行

原文地址:Basics and working with Flows
本文仅做一些核心概念的解释,以方便理解Akka和Squbs

核心概念

Akka Stream是一个类库,使用有界缓冲区间处理和转换一系列元素。后面一个属性就是我们所说的有界性,它是Akka Streams的定义特征。翻译成日常用语,可以表达为处理实体的链(或者是我们后面可以看到的图标),每个独立的执行(并且可能同时)的同时缓冲一个固定大小的元素在任何时间。缓冲区边界参数在每个actor模型中都不同,每个actor可能为无界的,有界但下降邮箱。Akka Stream处理实体具有不下降的“邮箱”。
在我们继续之前,让我们定义一些基础的术语,这在整篇文章中将会用到:
Stream(流)
一个包括移动和转换数据的活跃进程

Element(元素)
element 是流的处理单元。所有将元素从上行流转换到下行流的操作。缓冲大小通常表达成元素的数目,独立表达实际的元素大小。

Back-pressure(背压)
流量控制的手段。一个数据消费提供生产者关于它们当前可用性的方式,有效的减少上游生产者来匹配它们消费者的速度。Akka Streams背压的上下文始终理解为非阻塞异步

Non-Blocking(非阻塞)
意味着一个确定的操作不会阻碍调用线程的调用进度,即便它花费很长的时间结束请求操作。

Graph(图表)
流处理拓扑的描述,定义运行时的流的元素流向的路径。

Processing Stage(处理阶段)
所有构建图形的构建块的通用名称。processing stage的例子如map(), filter(),通过transform()添加的stage,如PushStagePushPullStageStatefulStage。图表方法如 MergeBroadcast`。有关内置处理stage的完整列表参见 Overview of built-in stages and their semantics

上一篇下一篇

猜你喜欢

热点阅读