Dot-Net

TPL 數據流和 Akka.net 有什麼區別?

  • June 29, 2020

我曾使用過 TPL 數據流。真的很喜歡。我從我的 java/scala 朋友那裡多次聽到 Akka 這個詞,所以我嘗試閱讀它並發現 akka 也有一個 .net 埠。偉大的。當我繼續閱讀 akka 是什麼時,我驚訝地發現它聽起來與 TPL 數據流完全一樣。

所以來到我的問題,TPL 數據流和 Akka.net 有什麼區別?

什麼時候選擇什麼?

Akka 是一個基於 actor 的模型,TPL Dataflow 也是如此。正如後者被描述為*“這種數據流模型通過為粗粒度數據流和流水線任務提供程序內消息傳遞來促進基於參與者的程式。”* 我認為應該強調in-process,因為 Akka 允許您創建遠端參與者,它們不一定駐留在同一個程序中。

我發現了一條與 Akka.NET 和 TPL Dataflow 比較相關的有趣資訊,它們都是基於 actor 的:

http://blog.i3arnon.com/2016/05/23/tpl-dataflow/

對於演員模型,您檢查過 Akka.net 嗎?它是來自 Java\Scala 的 Akka 框架的一個埠,似乎已經建立了一個非常強大的社區。只是好奇 TPL 數據流如何比較?

實際上,我已經與 .NET Fringe 的一位所有者 Aaron Stannard 討論過它。他說他們最初的實現實際上在底層使用了 TPL 數據流。我認為 TPL Dataflow 更像是一個庫,而 AKKA.NET 是一個框架。TPL Dataflow 用於程序內管道,而 AKKA 是分佈式系統基礎架構,儘管它們具有相同的思維方式。

Aaron 是 Petabridge 的聯合創始人和 CTO,也是 Akka.NET 開源項目的聯合創始人。

引用自:https://stackoverflow.com/questions/39263257