zoukankan      html  css  js  c++  java
  • 思考一种好的架构(十二)

    事件溯源(TracingSource)

     /// <summary>
        /// 数据库事件溯源实体
        /// </summary>
        [Table(name: "TracingSource")]
       public class TracingSourceEntity
        {
            [ColumnAttribute(IsPrimaryKey =true)]
            [AutoIncrement]
            public int ID { get; set; }
            /// <summary>
            /// 执行时间
            /// </summary>
            public DateTime ExecuteTimer { get; set; }
    
            /// <summary>
            /// 执行Sql
            /// </summary>
            public string ExecuteSql { get; set; }
        }
      class DCCQRSCommandEventHandler : INotificationHandler<DCCQRSCommandEvent>
        {
            IDbContext DC;
            IMapper Mapper;
            public DCCQRSCommandEventHandler(IDbContext DC,IMapper Mapper) {
                this.DC = DC;
                this.Mapper = Mapper;
            }
    
            public Task Handle(DCCQRSCommandEvent notification, CancellationToken cancellationToken)
            {
                DC.Insert(Mapper.Map<TracingSourceEntity>(notification));
                return Task.CompletedTask;
            }
        }
    class StartExecute : BaseStartExecute
        {
            public override void Execute()
            {
                EventBusPost.CreateEvent(typeof(Startup));
                MapperPost.CreateMap(x =>
                    x.CreateMap<DCCQRSCommandEvent, TracingSourceEntity>().ForMember(dest => dest.ID, opt => opt.Ignore())
                );
            }
        }
    
        public static class Startup
        {
            public static void ConfigureServices(IServiceCollection services)
            {
              
            }
    
            public static void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
             
            }
        }

    事件溯源服务的问题

      1、没有数据回溯功能,充其量也只是一个事件持久化

      2、使用业务库,而不是NoSql

    解释

      1、懒

      2、虽然它使用了业务库,但是还是一个归类为普通服务,使用业务库做持久化只是暂时的

  • 相关阅读:
    烂泥:jira7.2安装、中文及破解
    烂泥:VMWare Workation双网卡配置IP地址
    烂泥:centos6 yum方式升级内核
    烂泥:python2.7和python3.5源码安装
    烂泥:zabbix3.0安装与配置
    烂泥:利用awstats分析nginx日志
    烂泥:切割nginx日志
    JavaScript之函数
    Django之根据已经存在数据库中的表自动生成模型
    Django之操作数据库
  • 原文地址:https://www.cnblogs.com/AnAng/p/12612389.html
Copyright © 2011-2022 走看看