Akka Streams + Akka 集群

我有一个关于使用 Akka Streams 和 Akka Cluster 的问题。我正在尝试使用 Akka Streams 和 Akka Cluster 制作分布式字数统计版本。


我想构建一个 Akka Streams 客户端,它读取文本文件作为流 I/O 并将单词流发送到远程集群。这是客户端的代码:


final Path file = Paths.get("example.txt");

final Source<ByteString, CompletionStage<IOResult>> read = FileIO.fromPath(file);


final Source<Pair<String, Integer>, CompletionStage<IOResult>> counts =

  read

    .via(Framing.delimiter(ByteString.fromString(" "), 256, FramingTruncation.ALLOW))

    .map(i -> i.utf8String())

    .runWith(/* send to Akka cluster */);

我不明白我必须使用什么来将流数据发送到 Akka 集群而不会丢失 Akka Streams 的基础(背压等)。


我知道 Stream refs 和 Cluster Client 的存在,但我不明白要使用它们中的哪一个。


梦里花落0921
浏览 158回答 2
2回答

HUH函数

我认为您正在寻找的内容目前不存在。然而,有一个类似的东西叫做streamRefs它允许你在网络上拥有反应流。看看这里:https&nbsp;:&nbsp;//doc.akka.io/docs/akka/2.5/stream/stream-refs.html

Qyouu

直接回答我认为您正在寻找的功能在 version 中不可用2.5.18。该集群功能库存不相关的流表什么。间接回答您的用例的计算要求必须相当极端,才能证明akka-stream跨越多个服务器的合理性。鉴于现代处理器的核心数量激增,单个服务器中可用的并行量相当大。因此,流中的每个计算步骤都必须需要大量的处理器资源来证明跨越网络的流是合理的。如果您真的在从事如此大的项目,那么像apache spark这样的工具可能会更好地满足您的需求。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java