orleans/Documentation

福利

奧爾良的主要好處是︰開發人員工做效率,甚至爲非專家程序員;和默認的透明可伸縮性與程序員沒有特別努力。咱們擴大每一個下面這些好處。前端

開發人員的生產力

奧爾良的編程模型經過提供如下關鍵的抽象、 擔保和系統服務引起的專家和非專家程序員的生產力。mysql

  • 熟悉面向對象編程 (OOP) 範式。行爲者實施的.NET 類聲明.NET 演員接口使用異步方法。所以演員這彷佛對程序員來講是能夠直接調用其方法的遠程對象。這爲程序員提供了熟悉的面向對象範式的轉成消息的方法調用,將它們路由到正確的終結點,調用目標演員方法處理失敗和角狀況下,在徹底透明的方式。
  • 單線程執行的行動者。運行時保證,演員歷來沒有超過一個線程上執行一次。再加上從其餘行動者隔離,程序員永遠不會面臨併發演員一級,所以永遠不會須要使用鎖或其餘同步機制來控制對共享數據的訪問。這一功能使分佈式應用程序開發爲非專家程序員溫順。
  • 透明激活。運行時激活演員做爲須要只有當它處理的消息。這乾淨地分離建立引用到的演員,是可見並由應用程序代碼和演員在內存中,這是對應用程序透明的物理活化控制的概念。在許多方面,這是相似於虛擬內存,由於它決定何時"頁出"(停用) 或"頁面中"(激活) 的演員;應用程序具備不間斷的接觸充分"內存空間"的邏輯建立行動者,不管他們是否在任何特定時刻的物理內存在時間。透明激活使動態、 自適應負載平衡經過放置和遷移的演員跨硬件資源池。此功能是傳統角色模型,在哪一個演員一輩子是應用程序管理有重大改善。
  • 位置透明性。主角引用 (代理對象),程序員使用來調用演員的方法或傳遞給其餘組件只包含邏輯的演員身份。翻譯的這位演員的邏輯身份對其物理位置和相應路由的消息由奧爾良運行時透明地完成。應用程序代碼進行通訊與行動者沒有注意到它們的物理位置,可能因爲故障或資源管理時間的推移,或由於演員被停用時調用。
  • 與持久存儲區的透明集成。奧爾良容許演員的內存中狀態到持久存儲區的聲明式映射。它將同步更新,以透明方式保證調用方接收結果的持久性狀態已成功更新後才。延長和/或自定義現有持久性存儲提供程序可用集是直截了當的。
  • 錯誤的自動傳播。運行庫會自動傳播與異步和分佈式的 try-catch 語義調用鏈中向上的未處理的錯誤。所以,錯誤不會丟失在應用程序中。這容許程序員把錯誤處理邏輯在適當的地方,沒有手動傳播錯誤的每一個級別的繁瑣工做。

默認狀況下的透明可擴展性

奧爾良的編程模型被爲了指導程序員下來路徑有可能成功地擴展他們的應用程序或服務經過幾個數量級。這是經過結合行之有效的最佳作法和模式,並提供較低的能級系統功能有效地執行。這裏有幾個關鍵因素,使可伸縮性和性能。git

  • 隱式細晶粒分區的應用程序狀態。經過使用直接尋址的實體做爲演員,程序員隱式分解及其應用程序的總體狀態。雖然的奧爾良編程模型並無規定如何大或小演員應當是,在大多數狀況下它意義有相對大量的行動者 — — 數以百萬計或更多 — — 與每一個元素表明一個天然的實體的應用程序,如用戶賬戶、 採購訂單等。演員被單獨可尋址與抽象出來了由運行時其物理位置,奧爾良有極大的靈活性,在平衡負載和處理熱點在透明和通用的方式,沒有任何思想從應用程序開發人員。
  • 自適應資源管理。與行動者關於他們交互因爲位置透明性與其餘演員現場製做沒有假設,運行時能夠管理和調整可用的硬件資源的分配在一個很是動態的方式使細粒決定按安置/遷移的演員跨計算羣集中反應來加載和通訊模式沒有傳入的請求。經過建立多個副本的一個特定的演員運行時能夠提升吞吐量的演員若有必要,不須要更改任何應用程序代碼。
  • 複用通訊。在奧爾良行爲者邏輯終結點,而它們之間消息傳遞多路複用在一套固定的所有共物理鏈接 (TCP 套接字)。這容許運行時主機尋址的實體,與每位演員較低的操做系統開銷很是大號 (百萬)。此外,激活/取消激活的演員並不招致的註冊註銷一個物理端點,例如 TCP 端口或一個 HTTP URL,或甚相當閉 TCP 鏈接的成本。
  • 高效調度。運行時安排跨與每一個物理處理器核心線程的自定義線程池執行大量的單線程的演員。與演員代碼寫在非阻塞延續基於風格 (奧爾良編程模型要求) 應用程序的代碼運行在一個很是有效的"合做"多線程的方式與沒有爭用。這可以使系統達到較高的吞吐量和運行在 CPU 使用率很高 (達 90%以上) 與極大的穩定性。在系統和負載行爲者的人數增加不會致使額外的線程或其餘 OS 基元的事實幫助各個節點和整個系統的可擴展性。
  • 顯式異步。奧爾良編程模型使得導遊程序員編寫非阻塞異步代碼與分佈式應用程序顯式異步性質。與異步消息傳遞、 高效調度相結合,這樣,很大程度的分佈式並行性和總體吞吐量無需顯式使用多線程。

 

系統必備組件

奧爾良是一套的.NET 庫。要使用奧爾良,須要.NET 框架4.5.1 或更高和Visual Studio 2015 或更高版本的副本。請注意,快遞版本的 Visual Studio 不支持擴展包,但您能夠經過直接添加引用 NuGet 程序包使用奧爾良。程序員

在生產中,奧爾良須要持久存儲。如下技術支持 (只須要其中之一)︰github

Nuget 程序包

1.3.1 版奧爾良 NuGet 程序包

有 4 關鍵的 NuGet 程序包,您將須要在大多數狀況下使用︰sql

微軟奧爾良生成時間代碼生成

PM> Install-Package Microsoft.Orleans.OrleansCodeGenerator.Build 

創建糧食接口和執行項目的支持。將它添加到您的糧食接口和執行項目,使糧食引用和序列化程序的代碼生成。 和包是過期和提供僅用於向後兼容性和遷移。Microsoft.Orleans.Templates.InterfacesMicrosoft.Orleans.Templates.Grains數據庫

微軟奧爾良核心庫

PM> Install-Package Microsoft.Orleans.Core 

包含 Orleans.dll,定義大多數奧爾良公共類型和奧爾良客戶端。引用它構建庫和客戶端應用程序使用奧爾良類型但不須要任何包含提供者。apache

微軟奧爾良服務器庫

PM> Install-Package Microsoft.Orleans.Server 

包括一切您須要運行一個筒倉。編程

微軟奧爾良客戶端庫

PM> Install-Package Microsoft.Orleans.Client 

包括一切你須要的奧爾良客戶端 (前端)。服務器


附加的軟件包

下列的軟件包提供額外的功能。

供應商和擴展

微軟奧爾良蔚藍的實用程序

PM> Install-Package Microsoft.Orleans.OrleansAzureUtils 

包含基於 Azure 表羣集成員資格提供程序,簡化的筒倉和 Azure 工人/Web 角色、 持久性提供程序 Azure 表和 Azure Blob 和 Azure 隊列流供應商中的客戶端實例化的包裝類。

微軟奧爾良 Sql 實用程序

PM> Install-Package Microsoft.Orleans.OrleansSqlUtils 

包含基於 SQL 羣集成員身份和持久性提供與 SQL Server、 MySQL、 PostgreSQL 和其餘 SQL 數據庫一塊兒使用。

微軟奧爾良提供商

PM> Install-Package Microsoft.Orleans.OrleansProviders 

包含一組內置的持久性和流服務供應商。包括在 Microsoft.Orleans.Client 和 Microsoft.Orleans.Server。

微軟奧爾良 ServiceBus 實用程序

PM> Install-Package Microsoft.Orleans.OrleansServiceBus 

包括流提供商 Azure 事件集線器。

微軟奧爾良領事實用程序

PM> Install-Package Microsoft.Orleans.OrleansConsulUtils 

包括用於存儲羣集成員資格數據使用領事的插件。

微軟奧爾良飼養員實用程序

PM> Install-Package Microsoft.Orleans.OrleansZooKeeperUtils 

包括用於存儲羣集成員資格數據使用 ZooKeeper 的插件。

微軟奧爾良遙測消費者-性能計數器

PM> Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.AI 

Windows 性能計數器的奧爾良遙測 API 執行的狀況。

微軟奧爾良遙測消費者-Azure 應用程序的看法

PM> Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.AI 

包括遙測消費者對 Azure 應用程序的看法。

微軟奧爾良遙測消費者-NewRelic

PM> Install-Package Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic 

包括爲 NewRelic 遙測消費者。

微軟奧爾良債券序列化程序

PM> Install-Package Microsoft.Orleans.Serialization.Bond 

包括對債券的序列化程序的支持。

主辦和測試

微軟奧爾良運行時

PM> Install-Package Microsoft.Orleans.OrleansRuntime 

核心運行時庫的 Microsoft 奧爾良承載並執行穀物筒倉內。

微軟奧爾良筒倉主機

PM> Install-Package Microsoft.Orleans.OrleansHost 

包括默認筒倉主機-OrleansHost.exe。能夠用於在內部部署或做爲一個進程外筒倉主機在 Azure 工做者角色。包含在 Microsoft.Orleans.Server 中。

微軟奧爾良服務結構支持

PM> Install-Package Microsoft.Orleans.ServiceFabric 

主辦微軟奧爾良服務織物上的支持。

微軟奧爾良測試主機圖書館

PM> Install-Package Microsoft.Orleans.TestingHost 

包括用於承載筒倉在測試項目庫。

微軟奧爾良代碼生成

PM> Install-Package Microsoft.Orleans.OrleansCodeGenerator 

包括運行的時代碼生成器。包括在 Microsoft.Orleans.Server 和 Microsoft.Orleans.Client。

工具

微軟奧爾良性能計數器工具

PM> Install-Package Microsoft.Orleans.CounterControl 

包括 OrleansCounterControl.exe,註冊 Windows 性能計數器類別,奧爾良統計,併爲部署的糧食類。須要提高權限。能夠在 Azure 做爲角色啓動任務的一部分執行。包含在 Microsoft.Orleans.Server 中。

微軟奧爾良管理工具

PM> Install-Package Microsoft.Orleans.OrleansManager 

包括奧爾良管理工具-OrleansManager.exe。

本站公眾號
   歡迎關注本站公眾號,獲取更多信息