如何評價微軟的orleans框架?

dotnet/orleans · GitHub

docs:

Microsoft Project Orleans

和其它分散式架構的比較?

有沒有國人在使用?


Orleans相比於Akka家族這些Actor框架而言有幾大特點:

  • Virtual Actors: 當你在上層編程的時候,你可以永遠假設和你通訊的Actor是活著的,這對於大大簡化應用層的邏輯,不言而喻。
  • Production ready:微軟用Orleans基本上實現了Xbox幾個核心遊戲的後端(Halo,戰爭機器4等等),這些後端集群規模據我所知遠遠大於現在任何Akka的產業界部署。
  • Performance: 在提供了Virtual Actor這個概念和高度Scalability的條件下,Orleans依然可以達到相對的高性能,低延遲,這個還是很令人吃驚的。當然了,這裡面有一部分原因是C#的具有非常好的Code-Generation以及和C#/C++ Interplay的能力,從而讓Orleans的序列化,數據處理等瓶頸模塊上有相對好的性能表現。例如說,嵌入FlatBuffer這種下一代序列化庫很簡單。
  • Active community: 據我所知,現在Orleans社區貢獻的代碼量已經超過50%了。一個活躍的社區說明了很多問題。Orleans是Github上第四火的.Net項目。
  • MIT License:這個可以說是最靈活的一個開源許可證,尤其是對於公司用戶。

假如你試圖寫一個分散式中後端系統,並有以下的設計要求,那麼Orleans會是一個不錯的選項:

  • 高可用(故障處理效率是可以調的系統參數)
  • 高擴展(10s-1000s伺服器)
  • 相對低延遲(毫秒級別)
  • 充分性能(100K左右的伺服器消息吞吐量) - 在升級為DotNetty後將有潛力上升到1M級別。
  • 雲部署 - DotNet Core 1.0 RTM的支持很快實現。部署到Linux集群將很快成為現實。


我覺得目前大夥看待Orleans跟看待Haskell差不多,都是抱著「不明覺厲但也不想明」的態度

我也倒是加入了一個Orleans的群,但卻幾乎看不到他們討論。。。(Haskell的群反倒每天都討論Haskell)


微軟Orleans的口號是「Cloud Computing Much Easier",初步試用了一下,Orleans Grain似乎是高度隔離的,grains是由silo高度自動化管理的,看起來比較傻瓜式,但是如果真的能夠讓開發人員從底層解放出來也是件好事。資料現在不多,剛剛開始學習中。

這段視頻中,Bykov說生產效率提高了3-5倍(00:25:30):

Episode 142: Microsoft Research project Orleans simplify development of scalable cloud services


推薦閱讀:

遊戲伺服器使用MongoDB作為資料庫,還有必要使用Redis緩存嗎?
作為遊戲客戶端開發,需要掌握哪些伺服器方面的知識,以及如何學習?
手游開發中網路通信使用長連接還是短連接比較好?
互聯網中TCP Socket伺服器的實現過程需要考慮哪些安全問題?

TAG:微軟Microsoft | 遊戲開發 | C# | 遊戲伺服器 | 伺服器架構 |