2
我已阅读Akka streams materialization concept,并理解流物化是:阿卡流:是什么mapMaterializedValue意味着
,以运行服用流描述(图),并分配它需要的所有必要资源的过程。
我跟着一个例子,使用mapMaterializedValue构建我的akka流,将消息发送到队列。代码的目的是推动信息流蓝图后,排队已经建立和代码工作,但我真的不明白是什么mapMaterrializaedValue代码做:
Promise<SourceQueueWithComplete<String>> promise = new Promise.DefaultPromise<>();
Source<String, SourceQueueWithComplete<String>> s = Source
.queue(100, OverflowStrategy.fail())
.mapMaterializaedValue(queue -> {
promise.trySuccess(queue);
});
source.toMat(Sink.foreach(x -> System.out.println(x)), Keep.left()).run(materIalizer);
promise.<SourceQueueWithComplete<String>>future().map(mapMapperFunction(), actorSystem.dispatcher());
谢谢弗拉基米尔,mapMaterializedValue的很清楚交代,现在我了解它是如何工作的。关于物化价值的另外一个问题,就像未来? – zt1983811
否;物化价值既不要求为期货(例如,这些例子中的排队不会被作为未来返回,虽然有时候垫价值是未来),也不与期货“相似” - 唯一的这种相似性是mapMaterializedValue'和'Future.map'方法名称中的子字符串'map',这是因为这种转换几乎总是被称为'map'。你可以在我的答案[这里]找到更多关于物化值的内容(https://stackoverflow.com/questions/39727729/akka-streams-what-does-mat-represents-in-sourceout-mat/39729078#39729078)。 –
感谢您的回答,我会看看那篇文章。 – zt1983811