为了账号安全,请及时绑定邮箱和手机立即绑定

Akka Streams + Akka 集群

Akka Streams + Akka 集群

梦里花落0921 2022-01-12 09:55:54
我有一个关于使用 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 的存在,但我不明白要使用它们中的哪一个。
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

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


查看完整回答
反对 回复 2022-01-12
?
Qyouu

TA贡献1786条经验 获得超11个赞

直接回答

我认为您正在寻找的功能在 version 中不可用2.5.18。该集群功能库存不相关的流表什么。

间接回答

您的用例的计算要求必须相当极端,才能证明akka-stream跨越多个服务器的合理性。鉴于现代处理器的核心数量激增,单个服务器中可用的并行量相当大。因此,流中的每个计算步骤都必须需要大量的处理器资源来证明跨越网络的流是合理的。

如果您真的在从事如此大的项目,那么像apache spark这样的工具可能会更好地满足您的需求。


查看完整回答
反对 回复 2022-01-12
  • 2 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信