首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Akka Stream的Keep right/left/both如何产生不同的输出?

Akka Stream是一种用于构建可扩展、高吞吐量的流处理应用程序的工具包。它基于Actor模型,提供了一种声明式的方式来处理数据流,并支持并发、容错和可伸缩性。

在Akka Stream中,Keep是一个用于指定在流操作中如何处理结果的方法。它有三个选项:Keep.right、Keep.left和Keep.both,它们可以产生不同的输出。

  1. Keep.right:当使用Keep.right时,流操作将返回右侧的结果,忽略左侧的结果。这意味着只保留了右侧的结果,并将其作为流操作的输出。这通常用于只关心最终结果的情况。
  2. Keep.left:当使用Keep.left时,流操作将返回左侧的结果,忽略右侧的结果。这意味着只保留了左侧的结果,并将其作为流操作的输出。这通常用于需要访问流的状态或其他中间结果的情况。
  3. Keep.both:当使用Keep.both时,流操作将返回左侧和右侧的结果。这意味着保留了左侧和右侧的结果,并将它们作为元组的形式返回。这通常用于需要同时访问流的状态和最终结果的情况。

通过使用不同的Keep选项,可以根据具体的需求来选择保留哪些结果作为流操作的输出。

对于Akka Stream的更详细了解和使用示例,可以参考腾讯云的相关产品:腾讯云流计算(Tencent Cloud StreamCompute),该产品提供了基于Akka Stream的流处理服务,可帮助用户快速构建和部署流处理应用程序。详情请参考:腾讯云流计算产品介绍,了解如何使用Akka Stream进行流处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Akka(17): Stream:数据流基础组件-Source,Flow,Sink简介

不过akka-stream实现了reactive-streamback-pressure规范:数据发送方和接收方之间互动提示,使过快数据产生能按接收方要求慢下来甚至暂时停下来。...akka-stream数据流是由三类基础组件组合而成,不同组合方式代表不同数据处理及表达功能。三类组件分别是: 1、Source:数据源。...akka-stream属于push模式,所以Source也就是Publisher(数据发布方),Source形状SourceShape代表只有一个输出端口形状。...对通过输入端口输入数据流元素进行转变处理(transform)后经过输出端口输出。FlowShape有一个输入端和一个输出端。 在akka-stream里数据流组件一般被称为数据流图(graph)。...意思是选择左边数据流图运算结果。我们上面提过akka-stream是在actor系统里处理数据流元素。在这个过程中同时可以用actor内部状态来产生运算结果。

1.6K60

Akka(19): Stream:组合数据流,组合共用-Graph modular composition

(Keep.both)` instead", "2.5.2") def fromSinkAndSource[I, O, M1, M2](in: Sink[I, M1], out: Source[O,...M2]): Flow[I, O, (M1, M2)] = Flow.fromSinkAndSourceCoupledMat(in, out)(Keep.both) 从上面图列里Composite...然后我们再使用这个自定义流图模块组建一个完整闭合流图: import akka.actor._ import akka.stream._ import akka.stream.scaladsl._...b.addEdge(importAndGetPort(b), to) 以上过程显示:通过akkaGraphDSL,对复合型Graph构建可以实现形象化,大部分工作都在如何对组件之间端口进行连接...不同还有akka-stream运算是在actor上进行,除了大家都能对数据流元素进行处理之外,akka-stream还可以通过actor内部状态来维护和返回运算结果。

1K100

restapi(5)- rest-mongo 应用实例:分布式图片管理系统之一,rest 服务

MongoDB是一个分布式数据库,在一个集群内任何节点都可以存取,也就是说在集群所有节点上都部署统一rest-mongo,这样客户端可以用不同ip地址来访问不同节点提交图片存取请求。...对一个商品提出n个存写请求,同一个商品编号,系统对每张图片自动产生序号并在httprespose中返回给客户端。...客户端取图片时提供商品编号,系统先把这个商品所有图片序号返还客户端,客户端再按序号一张一张索取图片,并指定输出图片伸缩尺寸。 这篇我们先跟着前几篇内容把有关图片存取rest服务实现了。...import com.datatech.sdp.file.Streaming._ import org.mongodb.scala.result._ import MongoRepo._ import akka.stream.ActorMaterializer...akka.stream._ import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives._ import pdi.jwt

76130

Akka(25): Stream:对接外部系统-Integration

在现实应用中akka-stream往往需要集成其它外部系统形成完整应用。这些外部系统可能是akka系列系统或者其它类型系统。...所以,akka-stream必须提供一些函数和方法来实现与各种不同类型系统信息交换。在这篇讨论里我们就介绍几种通用信息交换方法和函数。  ...akka-stream提供了mapAsync+ask模式可以从一个运算中数据流向外连接某个Actor来进行数据交换。这是一种akka-stream与Actor集成应用。...在receive函数里我们把offer用法以及它可能产生返回结果通过pipeTo都做了示范。...OverflowStrategy.backpressure) val inputQueue: SourceQueueWithComplete[String] = source.toMat(Sink.foreach(println))(Keep.left

2K80

restapi(6)- do it the functional way, 重温函数式编程

把一个简单功能实现搞这么复杂都是我错,可能受OOP荼毒太深。这次希望静下心来用函数式编程模式把这段代码从新实现一次,示范一下函数式编程代码精炼和高雅特点。...逻辑思路上没问题,不过这样做法是典型行令式编程模式。在函数式编程模式里,阶段性运算结果是在包嵌在Monad中。Monad本身只是一个运算计划,只有真正运算时才能获取结果。...在这里可以形象把Monad函数组合描述为数据库操作步骤:先count、再insert,这两个步骤产生结果还是留在Monad里,直到所谓世界末日,即实际运算完成后才取出,所以Monad是一种典型程序运算流程管道...import com.datatech.sdp.file.Streaming._ import org.mongodb.scala.result._ import MongoRepo._ import akka.stream.ActorMaterializer...._ import akka.http.scaladsl.model._ import akka.http.scaladsl.coding.Gzip import akka.stream.scaladsl

93430
领券