Orleans 整體介紹

2022-02-21 20:58:18 字數 1836 閱讀 1881

orleans

是微軟開源的actor模型開發框架。

actor模型

此模型解決了併發程式設計時對資源競爭使用的問題,將對同乙個業務資料的訪問從並行變為序列執行,降低了多執行緒程式設計的難度,使普通程式設計人員也能輕鬆編寫高併發應用。

orleans的主要特點是通過框架提公升開發人員的效率,並預設提供對應用系統橫向擴充套件的能力,即使是普通開發人員也能輕鬆的完成。

orleans通過提供以下這些關鍵抽象、執行保證、系統服務來提高開發人員的效率,並不在意開發人員是否是併發程式設計專家。

igrain宣告了一些非同步的方法, grains負責實現他們,是不是很熟悉?我們可以像呼叫本地方法一樣去呼叫這些遠端的grain方法,orleans負責將它們轉換為訊息並在網路上傳輸、排程。

orleans保證了乙個grain不會在多個執行緒上執行(通過primarykey區分grain),程式設計人員永遠不用擔心在grain層面的併發問題,也不需要使用鎖或其它同步機制來保證對共享資料的訪問。

grain僅當要處理訊息時才會啟用,不同於普通的類例項需要例項化或釋放,grain只有啟用和休眠兩種狀態,並且可以在不同的硬體裝置中遷移,實現動態、自適應的負載均衡,並且開發人員不需關心這些具體細節。

開發人員呼叫grain時,不需要知道grain的物理位置在哪乙個硬體裝置上,只需要建立對grain的邏輯引用。

orleans允許將grina的記憶體狀態持久化到儲存裝置。它允許擴充套件或定製持久化提供程式,並保證只有在成功更新持久狀態後才呼叫者才能收到結果。

執行時使用非同步和分布式try / catch的語義自動在呼叫鏈上傳播未處理的錯誤。 因此,錯誤不會在應用程式中丟失。

這允許程式設計師將錯誤處理邏輯放在適當的位置,而無需在每個級別手動傳播錯誤的繁瑣工作。

orleans 通過提供以下特性幫助開發人員將系統應用的可擴充套件性提公升幾個數量級;這是通過將最佳實踐和成熟的模型相融合,並通過提供高效率、低學習成本的系統來達成這一目標。

orleans 使用grain作為可直接訪問的實體,程式設計師隱式地打破了應用程式的單體狀態。orleans 並沒有規定 grain 應該是多大或多小,但絕大多數情況下會有大量的 grain,每個 grain 代表了應用中的自然實體,例如使用者、訂單中,每個使用者是乙個單獨的grain,可通過userid做為primarykey來區分各個usergrain。由於grain的獨立性,並且物理位置被抽象為了邏輯位置,所以orleans在負載均衡和熱點處理方面具有極大的靈活性,並且不需要開發人員考慮這些部分。

當 grain 互相呼叫時,它們不需要去猜測其它 grain 的位置。因為框架具有位置透明的特性,runtime 可以動態管理和調整可用硬體資源的分配,通過對集群中的 grain 的動態遷移來保證負載,而不會使傳入的請求失敗。通過建立特定grain的多個副本,保證吞吐量,而無需修改應用程式**。

grain 採用的是邏輯位址,並且它們之間的訊息傳遞在tcp socket上多路復通,這允許runtime 託管數百萬個具有極低開銷的grain。另外,啟用和停用 grain 不會產生 socket 成本。

runtime 可以執行大規模的單執行緒 grain 排程,使用非阻塞、基於連續方式編寫 grain,應用程式以非常有效的協程方式執行,這使系統通夠達到高吞吐量並以非常高的cpu利用率執行,並具有極高的穩定性。事實上,系統中的grain數量增加和負載的增加不會導致額外的執行緒或其它的系統開銷,這有利於單個節點和整個系統的擴充套件。

orleans 框架中分布式應用程式的非同步特點明確,旨在指導程式設計師編寫非阻塞非同步**。結合非同步訊息傳遞和高效的排程,開發人員無需使用多執行緒程式設計技術即可實現大規模的分布式並行性和總體吞吐量。

中斷整體介紹

外部中斷請求源 即外部中斷0 和1,經由外部引腳引入,在微控制器上有兩個引腳,外稱為int0 int1,也就是p3.2 p3.3這兩個引腳 mcs51 微控制器內部的中斷模組在每個cpu週期都查詢各個中斷源的狀態,當其發生預期的中斷事件時,通知cpu將程式跳轉到中斷服務程式所在的程式儲存器 rom ...

Hadoop整體介紹

檔案目錄 bin sbin 集群工具 etc 配置檔案 include lib libexec windows c 依賴庫及工具 share hadoop所有jar包及文件 hdfs hdfs 框架 namenode,datanode,secondnamenode,hdfs client commo...

Kettle 整體介紹

etl是什麼 etl extract transform load的縮寫,即資料抽取 轉換 裝載的過程 對於企業或行業應用來說,我們經常會遇到各種資料的處理,轉換,遷移等工作,kettle就是來幹這件事的。kettle概述 kettle 是一款開源etl處理工具,支援對多種不同資料來源進行資料抽全 ...