Orleans---持久化
来源:互联网 发布:python retry 编辑:程序博客网 时间:2024/05/01 07:40
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---持久化
- Orleans配置---持久化
- Orleans简介
- Orleans安装
- Orleans介绍
- Microsoft Orleans框架
- 微软Orleans连接MongoDB
- Microsoft Orleans学习资源
- Orleans简单配置
- Orleans的集群构建
- Orleans的集群构建
- Orleans—一些概念
- Orleans简单配置
- Orleans例子再进一步
- Orleans入门例子
- 持久化
- 持久化
- 持久化
- 二进制及其它进制相互转换(二)
- Java
- 统一开户前置模拟开户流程
- HDU 6168 Numbers 优先队列
- Arccatalog连接到postgresql失败问题
- Orleans---持久化
- Spring Cloud Config
- gets()getchar()与缓冲区的问题
- 常见的安全算法
- 吃青春饭”的程序员们:再过 5 年,你还在写代码吗?
- 【Leetcode】【python】Valid Parentheses
- error C2275 : 'UNICODE_STRING' :illegal use of this type as an expression
- Nginx的启动和停止
- IOS 设置一个UIView里面的全部控件状态