在SubFlow完成时Akka Streams`groupBy`容量更改?

时间:2017-05-01 14:30:14

标签: akka akka-stream

在流量定义中使用groupBy时,最大容量为n

source.groupBy(Int.MaxValue, _.key).to(Sink.actorRef)

如果我挂起导致说明的子流,一个Actor接收器,并故意导致子流在某些消息上终止,那么这会释放groupBy容量吗?如果子流由接收器结束,它会从n转到n-1回到n吗?这是设置动态图表的可行方法吗?

1 个答案:

答案 0 :(得分:1)

关于groupBy的工作原理:,maxSubstreams容量是动态的,即它代表活动子流的最大数量

GroupBy阶段将每个子流的引用保持在其内部状态,并且只要该特定子流完成,就会将其删除。

关于您的具体示例,我不认为有办法确保"子流由接收器结束"。这是因为在to(Sink.actorRef)之后使用groupBy所有流量都将为一个角色提供动力。