日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Aaron Stannard谈Akka.NET 1.1

發布時間:2023/12/4 asp.net 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Aaron Stannard谈Akka.NET 1.1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Akka.NET?1.1近日發布,帶來新特性和性能提升。InfoQ采訪了Akka.net維護者Aaron Stannard,了解更多有關Akka.Streams和Akka.Cluster的信息。Aaron還闡述了與Akka for JVM實現有關的路線圖計劃。

InfoQ:這個版本有什么突出的特性?

Aaron Stannard:Akka.NET 1.1的主要目標是將Akka.Cluster由Beta測試版程序包變成最終版(RTM)程序包。該版本還提供了測試工具,對在生產環境里運行Akka.NET集群的過程中可能出現的大量各種不同的網絡場景進行了測試。

不要低估我們付出的巨大努力;Akka.Cluster Beta測試版最初發布于2014年8月。所以,我們大約花了兩年的時間開發Akka.Cluster,收集生產用戶的反饋。在1.1版本開發的最后階段,我們主要是提升可靠性和集群系統的速度,以便它可以用于高可用工作負載。已經有銀行、醫療保健提供商、能源生產商、船隊和車隊管理企業、SaaS企業及其他許多用戶在生產環境中使用了Akka.NET。Akka.Cluster是他們最希望看到其發布的東西。

1.1版本的另外一個突出的特性是Akka.Streams的第一個Beta版本;該模塊引入了一種使用Akka.NET構建響應式應用程序的全新方法,允許開發人員將一系列的異步操作表示成大量可以互聯和重用的流處理圖。你可以從我們的文檔中看到Akka.Streams圖可能的樣子。

InfoQ:Akka.Net 1.1帶來了什么性能提升?

Stannard:最顯著的性能提升包括:

  • 將所有Actor的內存占用減少了34%;

  • 將每個Akka.Remote連接(支撐Akka.Cluster網絡連接的子系統)的吞吐量提高了5倍;

  • 改正了多處內存過度使用的地方,最明顯的是日志系統;

雖然我們一直在不斷地度量、測試、提升Akka.NET的性能,但是性能不是這個版本的真正目的。性能的提升源于我們找到了更為健壯的方法實現Akka.NET使用的部分內部構件。

InfoQ:在這個版本中,您最喜歡的特性是什么?

Stannard:說來真奇怪,在1.1版本中,我最喜歡的部分是一個和我無關的部分:Akka.Streams。

關于Akka.Streams,真正引人注目的是,它讓用戶僅僅使用幾行代碼就可以簡潔地表達復雜的工作流,包括傳統上非常困難的并發編程問題,比如退避和節流。在沒有經驗的情況下,我昨天使用Akka.Streams在幾個小時的時間里就重寫了WebCrawler Akka.Cluster演示程序中處理繁重任務的部分。我還使用一些內置的緩沖流解決了那個代碼庫中存在多年的節流問題。和第一次使用Actor一樣,第一次使用Akka.Streams也讓我很激動:我意識到,我使用了一種以前從未使用過的全新的編程方法。

InfoQ:你們是如何制定路線圖的?

Stannard:Akka.NET當前的路線圖是由多個因素促成的;與原先的Akka for JVM實現一致就是一個重要因素。我們受益于他們的經驗和用戶報告的Bug,因此,遵循他們的實現有巨大的好處。

InfoQ:遵循Akka for JVM的實現方式讓你們獲得了哪些好處?

Stannard:開發人員永遠不要忘記,“生產時間(time-in-production)”是度量代碼庫健康情況及其思想的最有價值的指標。和專有的單業務線應用程序相比,一個有著幾千名用戶、在幾千臺服務器上7x24小時運行的大型開源項目,其在生產環境中累計運行的時間會更多。那意味著,更多的Bug、設計缺陷會更快地被發現,生產力就可以獲得更頻繁地改進。這就可以解釋,為什么在Daily WTF上有關可怕的代碼炸彈的文章中,幾乎所有多年未能發現的代碼炸彈都是來自用途單一的專有代碼或者應用不廣泛的開源軟件。這就是為什么我們要設法遵循Akka for JVM的思路——他們的設計來源于在生產環境中長時間的運行。

InfoQ:你們的路線圖和Akka for JVM有什么不同?

Stannard:Akka.NET本身已經在生產環境中使用了很長時間了。我們已經從客戶那里獲得我們自己的生產力改進/Bug/不同的想法。.NET和JVM生態系統的巨大差別也是我們制定路線圖時必須考慮的。例如,.NET開發人員特別喜歡依賴注入框架,而那在Scala開發中往往并不多見。那種差別會對路線圖的制定產生影響,將來,我們可能會選擇設計不同于JVM的東西,例如讓DI支持成為一等特性,而不是一個插件。

也有一些Akka for JVM中有的模塊,我們并沒有多大的興趣移植——比如Apache Camel集成。我還沒有見過哪家.NET工場用它。還有Akka.HTTP,這是一個我們多年來一直在開發的怪物級模塊。我們近期內不會移植,因為相對于我們現在要提供給用戶的一切,它的價值較低。

一般而言,我們的用戶往往在服務器端應用程序中使用Akka.NET。他們真正想要的是我們的高可用(HA)模塊,像Akka.Cluster、Persistence、Streams和Sharding,全部運行在Linux上的.NET Core上。所以接下來,影響我們路線圖的主要任務可能是,Akka.NET提供對.NET Core的初步支持。

InfoQ:Akka.NET主要是C#的,但也有F# API。您在實現中使用了F#?

Stannard:就我個人而言,我并不怎么用F#,但我正要改變那種情況。我維護我們的構建系統。該系統用F#編寫,使用了FAKE。我大部分的F#使用經驗都來自那里。我正計劃在不久的將來構建一些供Petabridge內部使用的應用程序,我考慮在Windows Azure Service Fabric上使用Suave及Akka.Cluster來實現。無疑,Akka.NET讓我愛上了函數式編程。許多FP的基礎概念,如模式匹配和“流迭代(stream iteration)”,是Actor系統的主要部分。在任何.NET開發人員的職業發展中,F#都會自然地成為Akka.NET的下一個步驟。

Akka.NET是一個托管在GitHub上的開源項目。Akka.NET網站提供了詳細的文檔。

原文地址:http://www.infoq.com/cn/news/2016/07/akka-dotnet


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的Aaron Stannard谈Akka.NET 1.1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。