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跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汇编语言(十二)之统计小于平均数的个数

在一个数组中找出并统计并该数组的平均数小的数的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentDATA dw 10h dup(1,2,3,4,-1,5,7,-99,29,-11,294,-21,45,6,57,-54)average dw 0countOfLowAverage dw 0outputAverage …

【最全最详细】publiccmsCSS和JS引入无效的解决方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 ✍往期系列 这两天一直在整理Publiccms系列的教程&#xff0c;有需要的小伙伴们可以点击以下链接查看&#xff1a; ☝publiccms使用教程&#xff08;使用方式…

C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码

本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? 只讲一个,关于Xamarin.Forms针对各个平台如何进行可定制化的控件操作. 也就是针对某个平台的…

笑脸喜迎新同学,热情送给新伙伴

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????。”今天&#xff0c;于我和王老师来说&#xff0c;是个非同寻常的一天。那是因为&#xff0c;今天迎来了4班的40余位新同学们&#xff01;一大早&#xff0c;同学们就陆陆…

汇编语言(十三)之偶数转成哥德巴赫猜想

将输入的偶数转换成哥德巴赫猜想&#xff0c;输出哥德巴赫猜想 程序运行&#xff1a; 代码&#xff1a; datas segmentmaxESLen db 0ffhevenSLen db 0evenString db 0ffh dup(?)evenNumber dw ?prime1 dw 0 prime2 dw 0 i…

计算机入门的一些常用小技巧总结

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”今天总结了一些windows中常用的小技巧&#xff0c;也是明天上课需要演示的&#xff0c;希望对初入计算机行业的你们有所帮助&#xff0c;哈哈哈哈。常用shutdown命令&#xff1a;1.定时…

汇编语言(十四)之判断字符串是否包含数字

输入一串字符串&#xff0c;判断字符串里面是否包含数字&#xff0c;如果包含数字输出把cl的第五位设置为1&#xff0c;否则设置为0 程序运行&#xff1a; 代码&#xff1a; datas segmentSTRING_maxLength db 0ffhSTRING_Length d…

UnitOfWork知多少

1. 引言 Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.Unit of Work --Martin Fowler Unit Of Work模式&#xff0c;由马丁大叔提出&#xff0c;是一种数据访问模…

表扬几位积极的同学!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”这几天太忙了&#xff0c;几天才回家一次&#xff0c;总有忙不完的活在干。4班这几天同学们表现还不错&#xff0c;布置的作业都能按时完成&#xff0c;课堂上也比较活跃&#xff0c;比…

中山纪念中学培训15天总结

比赛 2018/7/6-纪中某C组题【jzoj1192,jzoj1397,jzoj1736】 上来就集体爆零 2018/7/7-纪中某C组题【jzoj1494,jzoj1495,jzoj1496,jzoj1497】 还比较好 2018/7/8-纪中某C组题【jzoj1619,jzoj1620,jzoj1621,jzoj1622】 发现了dp方面的不足 2018/7/9-纪中某B组题【jzoj1503…

汇编语言(十五)之找出两个数组中的相同元素

找出两个数组中的相同元素&#xff0c;并且输出 程序运行&#xff1a; 代码&#xff1a; datas segmentA dw -1,-2, 3, 4, 5, 6, 7, 8, 9, 10,-11, 12, 13, 14, 15ACount dw ($-A)/2B dw -1, 2,-3, 4,-5, 6,-7, 8, 9,-10, 11,-12, 13,-14, 15,16,17,18,…

如何编写更好的SQL查询:终极指南-第一部分

结构化查询语言&#xff08;SQL&#xff09;是数据挖掘分析行业不可或缺的一项技能&#xff0c;总的来说&#xff0c;学习这个技能是比较容易的。对于SQL来说&#xff0c;编写查询语句只是第一步&#xff0c;确保查询语句高效并且适合于你的数据库操作工作&#xff0c;才是最重…

汇编语言(十六)之三数值求和

输入A、B、C三个数&#xff0c;如果存在一个数为0&#xff0c;则全部清零&#xff0c;否则求和输出 程序运行&#xff1a; 代码&#xff1a; datas segmentA dw 1B dw 0D dw 3S dw 0a_string db 0ffh, 0 ,100 dup(?)b_string db 0ffh, 0 ,100 dup(?…

回忆四班的那些事儿~

10“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”今天&#xff0c;谈谈四班的那些事儿吧~对于四班&#xff0c;回忆满满&#xff0c;根本忘却不了。和别的班一样&#xff0c;一个班内总有那么几个调皮捣蛋的孩子&#xff0c;只是四班…

C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码

本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? 也只讲一个,关于Xamarin.Forms针对各个平台如何进行可定制化的布局操作. 也就是针对某个平台…

汇编语言(十七)之判断三个数是否相等

输入三个数&#xff0c;计算相等数的个数 程序运行&#xff1a; 代码&#xff1a; datas segmenta db 0ffh, 0 ,100 dup(?)b db 0ffh, 0 ,100 dup(?)d db 0ffh, 0 ,100 dup(?) ARRAY dw 1,2,2inputA db input a$inputB db 0dh,0ah,i…

你想象中的实习是什么样的?

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????。”今天感谢学长小李同学投稿的文章&#xff0c;在校外实习一年&#xff0c;可谓收获满满&#xff0c;下面就是李心焱同学的实习感悟&#xff0c;请欣赏&#xff01;实习…

汇编语言(十八)之求两个数的最大公约数

输入两个数&#xff0c;使用辗转相除法求最大公约数 程序运行&#xff1a; 代码&#xff1a; datas segmentM_max_len db 0ffhM_len db 0M_string db 100 dup(?)M dw 0 N_max_len db 0ffhN_len db 0N_string db…

Orleans—一些概念

这个文章聊一聊Orleans的概念.以下文章大部分翻译自官方教程,还有一些结合实际的应用经验,并对以前文章留下的坑进行填平.如果有哪个坑没有填,还请告诉我. Grain的生命周期: 一个Grain在逻辑上是永远存在的,并在逻辑上拥有一个不变的标识.程序的代码永远不会去创造或者销毁一个…

使用jdbc连接mysql数据库代码示例

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”最近&#xff0c;正好在看jdbc&#xff0c;于是就整理了一份增删改查的案例&#xff0c;记录记录&#xff0c;以备后用&#xff01;&#xff01;java编辑器&#xff1a;myeclipse![10]…