Actor-ES框架:Ray--事件(Event)编写说明

Event作用:

  • 存储事件数据。

  1. IEventBase
    K:是Actor的StateId的类型,可以是long、可以是string,Ray一般使用OGuid生成的字符串作为主键。

  2. 编写Event继承IEventBase接口,Base部分如下:

             public string Id { get; set; }
             public uint Version { get; set; }
             public string CommandId { get; set; }
             public DateTime Timestamp { get; set; }
             public string StateId { get; set; }
             public string TypeCode => this.GetType().FullName;
     Id:
     - 含义:当前Event的Id。
     - 作用:标识当前Event。
     - 备注:不赋值时,Ray会自动赋值。
    
     Version:
     - 含义:Event的版本戳。
     - 作用:防止事件乱序。
     - 备注:Ray会自动赋值。
    
     CommandId:
     - 含义:当前Event的CommandId。
     - 作用:一个请求(Command)可能会引发多个Event,多个Event之间拥有相同的CommandId,多个Event通过CommandId建立联系。
     - 备注:不需要时默认为null。
    
     Timestamp:
     - 含义:当前Event的时间戳。
     - 作用:记录当前Event的发生时间,时间为UTC时间。
     - 备注:不赋值时,Ray会自动赋值。
    
     StateId:
     - 含义:Actor的Id。
     - 作用:记录引发事件的Actor的Id。
     - 备注:Ray会自动赋值。
    
     TypeCode:
     - 含义:事件的类型。
     - 作用:事件存储时会存储为二进制,重放时用于反序列化为对应的类型。
     - 备注:public string TypeCode => this.GetType().FullName。
  3. 特性说明

  • ProtoContract:Ray默认使用ProtoBuf对Event序列化。

  • Immutable:Actor之间使用的时候。

  • Obsolete:事件过期时标记。

  • 无参构造函数

    • 作用:反序列化时用。

    • 备注:必须写。

  • 自定义属性与有参构造函数

    • 自定义属性:Event中用到的参数。

    • 有参构造函数:用于自定义属性的初始化。

  • 事件过期

    • 弃用事件标记为Obsolete。

    • 新事件在业务逻辑上做兼容性处理。


    API:该部分只介绍使用,高级部分在后面文档说明。


    相关文章:


    原文地址:http://www.cnblogs.com/CharlesZHENG/p/8343088.html


    .NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值