Orleans---持久化


Orleans配置---持久化

這是Orleans系列文章中的一篇.首篇文章在此

Grain理想的生命周期應該如下圖所示:

這就如美國電影中的大反派一樣,死了再復活,死了再復活.當然如果復活的反派沒有記憶,這個電影就真沒勁.現在我要求Grain的復活是有記憶的復活.看我怎么辦到.

其中持久化需要用到數據庫,因為只有數據庫才能比較方便的為以后event sourcing做好准備.

步驟1

這里只介紹一種,使用sql server作為持久化設備.為了能使Grain保存自己的狀態值,我們需要配置一下Orleans

在silo端配置中寫入如下配置:比較一下和上文配置的區別.

為了讓使用Orleans提供的存儲中間件,還需要引用

並使用以下腳本在數據庫中創建Orleans所需要的表.地址是: https://github.com/dotnet/orleans/blob/master/src/OrleansSQLUtils/CreateOrleansTables_SqlServer.sql

這樣我啟動我的basic程序,Orleans就自動連接數據庫,並使用數據庫作為Grain的持久化存儲設備.不過我還需要做一點點工作:

步驟2

返回到IGrains項目,我增加一個接口如下圖:

步驟3

相應的,我又修改了Grains項目.如圖

步驟4

我又修改了client項目

,我們試試火力.只截取client的截圖.第一次運行應該有一條,而第二次運行應該有兩條

數據庫中查看是有數據的

后續

這個文章就說了一個事,在配置好StorageProvider之后,可以使用Orleans提供的函數,存儲或者讀取Grain的狀態值,這個Grain必須擴展自Grain<>.

如果夠細心會發現數據庫中的表有version字段(截圖中沒有截取到),這個正是為了Eventsourcing做准備的.

經過以上的介紹.這個Orleans框架算是真正的入門了.不管我說的好與不好,對與不對.讀到這里的人,都應該開始感覺,這也許仍然有wcf的影子,軟件嘛都是大同小異,但是最后Orleans的目的遠非如此.為了往后的文章更好的展開.我覺得有必要再回顧,並深入的介紹Orleans的概念和原理了.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM