【问题标题】:What is the difference between TPL dataflow and Akka.net?TPL 数据流和 Akka.net 有什么区别?
【发布时间】:2016-09-01 05:24:02
【问题描述】:
我使用过 TPL 数据流。真的很喜欢。我从我的 java/scala 朋友那里多次听到 Akka 这个词,所以我尝试阅读它并发现 akka 也有一个 .net 端口。伟大的。当我继续阅读 akka 是什么时,我惊讶地发现它听起来与 TPL 数据流完全一样。
那么来到我的问题上,TPL 数据流和 Akka.net 有什么区别?
什么时候选择什么?
【问题讨论】:
标签:
.net
akka
task-parallel-library
actor
tpl-dataflow
【解决方案1】:
Akka 是一个基于角色的模型,TPL 数据流也是如此。正如后者被描述为“这种数据流模型通过为粗粒度数据流和流水线任务提供进程内消息传递来促进基于参与者的编程。”我认为应该强调 in-process,因为 Akka 允许您创建远程 actor,它们不一定驻留在同一个进程中。
【解决方案2】:
我发现了一条关于 Akka.NET 和 TPL Dataflow 比较的有趣信息,它们都是基于actor的:
http://blog.i3arnon.com/2016/05/23/tpl-dataflow/
对于演员模型,您检查过 Akka.net 吗?它是一个港口
来自 Java\Scala 的 Akka 框架似乎已经建立了一个漂亮的
强大的社区。只是好奇 TPL 数据流的比较如何?
我实际上已经和其中一位业主 Aaron Stannard 谈过了,
在 .NET 边缘。他说他们最初的实现实际上使用了 TPL
下面的数据流。我认为 TPL Dataflow 更像是一个库,而
AKKA.NET 是一个框架。 TPL Dataflow 用于进程内管道
而 AKKA 是一个分布式系统基础架构,尽管它们共享
相同的心态。
Aaron 是 Petabridge 的联合创始人兼首席技术官,也是 Akka.NET 开源项目的联合创始人。