我正在尝试构建和运行一个 akka 流(在 Java DSL 中),其中有 2 个演员作为源,然后是一个合并结点,然后是 1 个接收器:
Source<Integer, ActorRef> src1 = Source.actorRef(100, OverflowStrategy.backpressure());
Source<Integer, ActorRef> src2 = Source.actorRef(100, OverflowStrategy.backpressure());
Sink<Integer, BoxedUnit> sink = Flow.of(Integer.class).to(Sink.foreach(System.out::println));
RunnableFlow<BoxedUnit> closed = FlowGraph.factory().closed(sink, (b, out) -> {
UniformFanInShape<Integer, Integer> merge = b.graph(Merge.<Integer>create(2));
b.from(src1).via(merge).to(out);
b.from(src2).to(merge);
});
closed.run(mat);
我的问题是如何获取对源演员的 ActorRef 引用以便向他们发送消息?如果有 1 个演员,我不会使用图形生成器,然后 .run() 或 runWith() 方法将返回 ActorRef 对象。但是如果有很多源演员怎么办?甚至有可能实现这样的流程吗?