在流量定义中使用groupBy
时,最大容量为n
:
source.groupBy(Int.MaxValue, _.key).to(Sink.actorRef)
如果我挂起导致说明的子流,一个Actor接收器,并故意导致子流在某些消息上终止,那么这会释放groupBy
容量吗?如果子流由接收器结束,它会从n
转到n-1
回到n
吗?这是设置动态图表的可行方法吗?
答案 0 :(得分:1)
关于groupBy
的工作原理:是,maxSubstreams容量是动态的,即它代表活动子流的最大数量。
GroupBy
阶段将每个子流的引用保持在其内部状态,并且只要该特定子流完成,就会将其删除。
关于您的具体示例,我不认为有办法确保"子流由接收器结束"。这是因为在to(Sink.actorRef)
之后使用groupBy
所有流量都将为一个角色提供动力。