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配置---持久化相关推荐
- Duwamish配置持久化学习笔记
在学习了Duwamish和.Text的配置方法后,对两者的配置持久化做一个比较. 以ApplicationConfiguration为例,Duwamish的配置文件中的<ApplicationC ...
- 配置持久化框架diamond简介及高阶应用
配置持久化框架diamond简介及高阶应用 前言 一.简介 二.特点 三.应用场景 四.server搭建 五.发布配置数据 六.简单应用 七.高阶应用 八.spring动态集成diamond 结束语 ...
- Alibaba Sentinel功能入门与配置持久化
Alibaba Sentinel功能入门与配置持久化 文章目录 Alibaba Sentinel功能入门与配置持久化 1.准备工作 2.整合与启动 2.1项目引入依赖: 2.2项目yaml配置 2.3 ...
- 理解nacos 服务治理(注册中心)、Nacos简介、下载与配置持久化到Mysql
Nacos简介 什么是Nacos Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流且管理. Nacos帮助您更敏 ...
- 02.Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载
Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载 简介 1. 安装配置前置环境 1.1 安装nfs文件系统 1.1. ...
- Nacos简介、下载与配置持久化到Mysql
场景 什么是Nacos Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发 现.服务配置.服务元数据及流且管理. Nacos帮助您更敏捷和容易 ...
- Day134-136.尚品汇:平台属性接口、SPU、跨域问题、配置持久化、MinIO 分布式文件存储系统
目录 Day 02 商品后台管理系统 1. 商品基本知识 2. 回顾Mybatis 3. 添加平台属性接口 (多表查询) Day 03 完成后台平台属性管理.SPU 1. 修改平台属性 2. gate ...
- Orleans解决并发之痛(五):Web API
通过前面几篇文章的介绍,可能会疑问怎么在实际开发中调用Grain,之前Demo的Client都是基于控制台应用程序,实际开发下可能是基于Web Form.Web API.MVC......,由于一时短 ...
- Orleans解决并发之痛(四):Streams
Orleans 提供了 Stream扩展编程模型.此模型提供了一套API,使处理流更简单和更健壮.Stream默认提供了两种Provider,不同的流类型可能使用不同的Provider来处理,Simp ...
最新文章
- 超人类AI的幻想与思考:自下而上构建的自我迭代意识系统
- Selenium3自动化测试——15.调用Javascript进行滚动条控制
- npm package.json中的dependencies和devDependencies的区别
- java中求立方根_求解立方根
- Linux C++线程池
- ambari集成mysql_Ambari 安装配置 MySql
- 北大保送、硕博连读!《西游记》红孩儿扮演者现成中科院博士!
- Doxygen with Graphviz to generate call graph on Mac
- UIwebView缩放
- 【zookeeper】zookeeper 脑裂问题
- 你所熟知的CI/CD工具都是有哪些?
- JavaScript基础教程新手入门必看
- A Hierarchical Deep Temporal Model for Group Activity Recognition
- efi安装linux7,使用PXE EFI引导安装RHEL7.3
- 空间分辨率和灰度分辨率
- ccf化学方程式配平检验
- @RunWith的使用
- 黑马头条推荐系统完整版(包括虚拟机和数据,代码已修复过可完美跑起来)
- Linux 驱动开发 四十四:platform 设备驱动实验(二)
- springMVC 自定义类型转换器