Orleans---持久化

Orleans配置---持久化

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

Grain理想的生命週期應該以下圖所示:git

這就如美國電影中的大反派同樣,死了再復活,死了再復活.固然若是復活的反派沒有記憶,這個電影就真沒勁.如今我要求Grain的復活是有記憶的復活.看我怎麼辦到.github

其中持久化須要用到數據庫,由於只有數據庫才能比較方便的爲之後event sourcing作好準備.sql

步驟1

這裏只介紹一種,使用sql server做爲持久化設備.爲了能使Grain保存本身的狀態值,咱們須要配置一下Orleans數據庫

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

爲了讓使用Orleans提供的存儲中間件,還須要引用ide

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

這樣我啓動個人basic程序,Orleans就自動鏈接數據庫,並使用數據庫做爲Grain的持久化存儲設備.不過我還須要作一點點工做:server

步驟2

返回到IGrains項目,我增長一個接口以下圖:htm

步驟3

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

步驟4

我又修改了client項目

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

數據庫中查看是有數據的

後續

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

若是夠細心會發現數據庫中的表有version字段(截圖中沒有截取到),這個正是爲了Eventsourcing作準備的.

通過以上的介紹.這個Orleans框架算是真正的入門了.無論我說的好與很差,對與不對.讀到這裏的人,都應該開始感受,這也許仍然有wcf的影子,軟件嘛都是大同小異,可是最後Orleans的目的遠非如此.爲了日後的文章更好的展開.我以爲有必要再回顧,並深刻的介紹Orleans的概念和原理了.

相關文章
相關標籤/搜索