• Orleans---持久化


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

  • 相关阅读:
    cxgrid显示行号
    编写服务端程序的要点
    创建自己的数据库
    cxgrid动态创建footer
    build with runtime package
    TQueue,TStack
    能用图形分析
    Laravel任务调度
    PHP 判断点是否在多边形内
    判断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)
  • 原文地址:https://www.cnblogs.com/gaopang/p/7409778.html
Copyright © 2020-2023  润新知