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的概念和原理了.
相關文章:?
.NET的Actor模型:Orleans
微軟分布式云計算框架Orleans(1):Hello World
微軟分布式云計算框架Orleans(2):容災與集群(1)
Aaron Stannard談Akka.NET 1.1
使用Akka.net開發第一個分布式應用
Orleans入門例子
Orleans例子再進一步
Orleans稍微復雜的例子—互動
Orleans簡單配置
原文地址:http://www.cnblogs.com/gaopang/p/7409778.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Orleans配置---持久化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Remoting核心类库RealProx
- 下一篇: UnitOfWork知多少