码迷,mamicode.com
首页 > 其他好文 > 详细

Orleans---持久化

时间:2017-08-22 10:53:49      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:ble   一点   tor   ide   grains   还需要   s系列   ilo   没有   

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的概念和原理了.

Orleans---持久化

标签:ble   一点   tor   ide   grains   还需要   s系列   ilo   没有   

原文地址:http://www.cnblogs.com/gaopang/p/7409778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!