Akka Streams`groupBy`流量在次流量完成时发生变化?
在最大容量为Akka Streams`groupBy`流量在次流量完成时发生变化?,akka,akka-stream,Akka,Akka Stream,在最大容量为n的流定义中使用groupBy时: source.groupBy(Int.MaxValue, _.key).to(Sink.actorRef) 如果我连接子流,结果是一个参与者下沉,并故意导致子流在某条消息上终止,这会释放groupBy容量吗?如果接收器结束一个子流,它会从n到n-1返回到n?这是建立动态ish图的可行方法吗?关于groupBy的一般工作方式:是,maxSubstreams容量是动态的,即它表示活动子流的最大数量 GroupBy阶段将每个子流的引用保持在其内部状态,
n
的流定义中使用groupBy
时:
source.groupBy(Int.MaxValue, _.key).to(Sink.actorRef)
如果我连接子流,结果是一个参与者下沉,并故意导致子流在某条消息上终止,这会释放
groupBy
容量吗?如果接收器结束一个子流,它会从n
到n-1
返回到n
?这是建立动态ish图的可行方法吗?关于groupBy
的一般工作方式:是,maxSubstreams容量是动态的,即它表示活动子流的最大数量
GroupBy
阶段将每个子流的引用保持在其内部状态,并且每当特定子流完成时,都会删除该引用
关于你的具体例子,我认为没有办法确保“一个亚流被水槽终止”。这是因为通过在
groupBy
之后使用to(Sink.actorRef)
所有流将为单个参与者提供信息 谢谢你的澄清!那么,有没有一种推荐的方法可以优雅地关闭一个亚流呢;看来我可以使用takeWhile
/statefulMapconcat