迫使Akka Stream将各个阶段融合在一起

时间:2019-01-31 11:51:12

标签: java multithreading akka akka-stream

akka流将各个阶段融合在一起的方式不是很透明。我想知道是否有办法:

  • 查看哪些阶段融合在一起
  • 强制将某些阶段融合在一起

2 个答案:

答案 0 :(得分:1)

  

查看哪些阶段融合在一起

我不知道有任何记录的揭示融合图阶段的方法。假设默认情况下会融合内置线性运算符(除非应用了async),这是非常安全的。

  

强制将某些阶段融合在一起

较早的Akka Stream版本确实提供了一些手动stage fusing的方法,您可以选择使用以下配置设置来禁用默认的自动融合:

akka.stream.materializer.auto-fusing=off

但是最新的API(2.5)不仅试图在幕后自动处理定影,而且还尝试disallow manual fusing

答案 1 :(得分:0)

我想说documentation对于运算符融合非常透明:

  

默认情况下,Akka Streams将融合流运算符。

Operator融合是默认行为,这意味着默认情况下,整个流将在同一actor中运行。要更改此行为,请使用async方法在您不想融合的舞台上定义异步边界。