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配置---持久化相关推荐

  1. Duwamish配置持久化学习笔记

    在学习了Duwamish和.Text的配置方法后,对两者的配置持久化做一个比较. 以ApplicationConfiguration为例,Duwamish的配置文件中的<ApplicationC ...

  2. 配置持久化框架diamond简介及高阶应用

    配置持久化框架diamond简介及高阶应用 前言 一.简介 二.特点 三.应用场景 四.server搭建 五.发布配置数据 六.简单应用 七.高阶应用 八.spring动态集成diamond 结束语 ...

  3. Alibaba Sentinel功能入门与配置持久化

    Alibaba Sentinel功能入门与配置持久化 文章目录 Alibaba Sentinel功能入门与配置持久化 1.准备工作 2.整合与启动 2.1项目引入依赖: 2.2项目yaml配置 2.3 ...

  4. 理解nacos 服务治理(注册中心)、Nacos简介、下载与配置持久化到Mysql

    Nacos简介 什么是Nacos Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流且管理. Nacos帮助您更敏 ...

  5. 02.Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载

    Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载 简介 1. 安装配置前置环境 1.1 安装nfs文件系统 1.1. ...

  6. Nacos简介、下载与配置持久化到Mysql

    场景 什么是Nacos Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发 现.服务配置.服务元数据及流且管理. Nacos帮助您更敏捷和容易 ...

  7. Day134-136.尚品汇:平台属性接口、SPU、跨域问题、配置持久化、MinIO 分布式文件存储系统

    目录 Day 02 商品后台管理系统 1. 商品基本知识 2. 回顾Mybatis 3. 添加平台属性接口 (多表查询) Day 03 完成后台平台属性管理.SPU 1. 修改平台属性 2. gate ...

  8. Orleans解决并发之痛(五):Web API

    通过前面几篇文章的介绍,可能会疑问怎么在实际开发中调用Grain,之前Demo的Client都是基于控制台应用程序,实际开发下可能是基于Web Form.Web API.MVC......,由于一时短 ...

  9. Orleans解决并发之痛(四):Streams

    Orleans 提供了 Stream扩展编程模型.此模型提供了一套API,使处理流更简单和更健壮.Stream默认提供了两种Provider,不同的流类型可能使用不同的Provider来处理,Simp ...

最新文章

  1. 超人类AI的幻想与思考:自下而上构建的自我迭代意识系统
  2. Selenium3自动化测试——15.调用Javascript进行滚动条控制
  3. npm package.json中的dependencies和devDependencies的区别
  4. java中求立方根_求解立方根
  5. Linux C++线程池
  6. ambari集成mysql_Ambari 安装配置 MySql
  7. 北大保送、硕博连读!《西游记》红孩儿扮演者现成中科院博士!
  8. Doxygen with Graphviz to generate call graph on Mac
  9. UIwebView缩放
  10. 【zookeeper】zookeeper 脑裂问题
  11. 你所熟知的CI/CD工具都是有哪些?
  12. JavaScript基础教程新手入门必看
  13. A Hierarchical Deep Temporal Model for Group Activity Recognition
  14. efi安装linux7,使用PXE EFI引导安装RHEL7.3
  15. 空间分辨率和灰度分辨率
  16. ccf化学方程式配平检验
  17. @RunWith的使用
  18. 黑马头条推荐系统完整版(包括虚拟机和数据,代码已修复过可完美跑起来)
  19. Linux 驱动开发 四十四:platform 设备驱动实验(二)
  20. springMVC 自定义类型转换器

热门文章

  1. 从零开始编写自己的C#框架(14)——T4模板在逻辑层中的应用(三)
  2. 远程连接mysql速度慢的解决方法
  3. 第一个c++泛型函数(即模板)
  4. 分布式云+dubbo+zookeeper+Springmvc整合
  5. [转]让Linux的tty界面支持中文
  6. 如何在构建docker镜像时执行SonarQube扫描.NET Core应用
  7. .NET 深度指南:Colors
  8. DevToys - 开发人员的瑞士军刀
  9. Kubernetes:标签、选择器、注解、容忍度、亲和性
  10. 我们需要什么样的开源教育?