static void InitializeEQueue() { var configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents() .UseDeleteMessageByCountStrategy(10); }
static void InitializeECommon() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .RegisterUnhandledExceptionHandler(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name); _scheduleService = ObjectContainer.Resolve <IScheduleService>(); }
static void InitializeEQueue() { var configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents() .BuildContainer(); }
private static void InitializeECommon() { _ecommonConfiguration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Bootstrap).FullName); _logger.Info("ECommon initialized."); }
private void InitializeENode( bool useMockEventStore = false, bool useMockPublishedVersionStore = false, bool useMockDomainEventPublisher = false, bool useMockApplicationMessagePublisher = false, bool useMockPublishableExceptionPublisher = false) { var connectionString = ConfigurationManager.AppSettings["connectionString"]; var assemblies = new[] { Assembly.GetExecutingAssembly() }; _enodeConfiguration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .CreateENode() .RegisterENodeComponents() .UseEventStore(useMockEventStore) .UsePublishedVersionStore(useMockPublishedVersionStore) .RegisterBusinessComponents(assemblies) .InitializeEQueue() .UseEQueue(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockPublishableExceptionPublisher) .BuildContainer(); if (!useMockEventStore) { _enodeConfiguration.InitializeSqlServerEventStore(connectionString); } if (!useMockPublishedVersionStore) { _enodeConfiguration.InitializeSqlServerPublishedVersionStore(connectionString); } _enodeConfiguration .InitializeBusinessAssemblies(assemblies) .StartEQueue() .Start(); _commandService = ObjectContainer.Resolve <ICommandService>(); _memoryCache = ObjectContainer.Resolve <IMemoryCache>(); _eventStore = ObjectContainer.Resolve <IEventStore>(); _publishedVersionStore = ObjectContainer.Resolve <IPublishedVersionStore>(); _domainEventPublisher = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >(); _applicationMessagePublisher = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >(); _publishableExceptionPublisher = ObjectContainer.Resolve <IMessagePublisher <IPublishableException> >(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest)); _logger.Info("----ENode initialized."); }
static void Main(string[] args) { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseSerilog() .RegisterUnhandledExceptionHandler() .BuildContainer(); new SocketRemotingServer().RegisterRequestHandler(100, new RequestHandler()).Start(); Console.ReadLine(); }
private static void InitializeEqueue() { ECommonConfiguration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents() .UseDeleteMessageByCountStrategy(10) .SetDefault <IQueueSelector, QueueAverageSelector>() .BuildContainer(); }
/// <summary> /// 初始化 ECommon /// </summary> private static void InitializeECommon() { _ecommonConfiguration = ECommonConfiguration .Create() //创建一个ECommonConfiguration类的实例 .UseAutofac() //使用的是Autofac容器 .RegisterCommonComponents() //把一些默认的组件注入到容器中 .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .BuildContainer();//告诉框架要捕获未处理的异常,这样框架在发现有未处理的异常时,会尝试记录错误日志 _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Bootstrap).FullName); _logger.Info("ECommon 初始化成功."); }
static void Main(string[] args) { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .RegisterUnhandledExceptionHandler(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name); _remotingServer = new SocketRemotingServer().Start(); PushTestMessageToAllClients(); Console.ReadLine(); }
public NettyTestBase() { var assemblies = new[] { Assembly.GetExecutingAssembly() }; var enode = ECommonConfiguration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .CreateENode(new ConfigurationSetting()) .RegisterBusinessComponents(assemblies) .RegisterENodeComponents(); enode.GetCommonConfiguration() .BuildContainer(); }
static void InitializeECommon() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .RegisterUnhandledExceptionHandler(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name); var serverIP = ConfigurationManager.AppSettings["ServerAddress"]; var serverAddress = string.IsNullOrEmpty(serverIP) ? SocketUtils.GetLocalIPV4() : IPAddress.Parse(serverIP); _client = new SocketRemotingClient(new IPEndPoint(serverAddress, 5000)).Start(); _client.RegisterRemotingServerMessageHandler(100, new RemotingServerMessageHandler()); }
static void InitializeEQueue() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents() .SetDefault <IQueueSelector, QueueAverageSelector>(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name); _scheduleService = ObjectContainer.Resolve <IScheduleService>(); _rtStatisticService = ObjectContainer.Resolve <IRTStatisticService>(); }
static void InitializeENodeFramework() { var setting = new ConfigurationSetting(ConfigurationManager.AppSettings["connectionString"]); _configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .CreateENode(setting) .RegisterENodeComponents() .UseSqlServerEventStore(); Console.WriteLine("ENode started..."); }
static void InitializeEQueue() { var configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents(); BrokerController.Create(new BrokerSetting(false, ConfigurationManager.AppSettings["fileStoreRootPath"], enableCache: false, syncFlush: bool.Parse(ConfigurationManager.AppSettings["syncFlush"]))); _messageStore = ObjectContainer.Resolve <IMessageStore>(); _performanceService = ObjectContainer.Resolve <IPerformanceService>(); _performanceService.Initialize("StoreMessage").Start(); _messageStore.Load(); _messageStore.Start(); }
private void Initialize() { var assemblies = new[] { Assembly.GetExecutingAssembly() }; var enode = ECommonConfiguration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .CreateENode(new ConfigurationSetting()) .RegisterBusinessComponents(assemblies) .RegisterENodeComponents() .UseMongoDbAggregateSnapshotter(); enode.GetCommonConfiguration() .BuildContainer(); enode.InitializeBusinessAssemblies(assemblies) .InitializeMongoDbAggregateSnapshotter(_mongoDbConfiguration); }
private static void InitializeEQueue() { _ecommonConfiguration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents() .BuildContainer(); ConfigSettings.Initialize(); var setting = new NameServerSetting() { BindingAddress = new IPEndPoint(IPAddress.Loopback, ConfigSettings.NameServerPort) }; _nameServer = new NameServerController(setting); ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Bootstrap).FullName).Info("NameServer initialized."); }
static void InitializeEQueue() { var configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents(); BrokerController.Create(new BrokerSetting(ConfigurationManager.AppSettings["fileStoreRootPath"], enableCache: false)); _messageStore = ObjectContainer.Resolve <IMessageStore>(); _scheduleService = ObjectContainer.Resolve <IScheduleService>(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name); _messageStore.Load(); _messageStore.Start(); }
static void InitializeEQueue() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents() .BuildContainer(); var clusterName = ConfigurationManager.AppSettings["ClusterName"]; var consumerName = ConfigurationManager.AppSettings["ConsumerName"]; var consumerGroup = ConfigurationManager.AppSettings["ConsumerGroup"]; var address = ConfigurationManager.AppSettings["NameServerAddress"]; var topic = ConfigurationManager.AppSettings["Topic"]; var nameServerAddress = string.IsNullOrEmpty(address) ? SocketUtils.GetLocalIPV4() : IPAddress.Parse(address); var clientCount = int.Parse(ConfigurationManager.AppSettings["ClientCount"]); var setting = new ConsumerSetting { ClusterName = clusterName, ConsumeFromWhere = ConsumeFromWhere.FirstOffset, MessageHandleMode = MessageHandleMode.Sequential, NameServerList = new List <IPEndPoint> { new IPEndPoint(nameServerAddress, 9493) } }; var messageHandler = new MessageHandler(); for (var i = 1; i <= clientCount; i++) { new Consumer(consumerGroup, setting, consumerName) .Subscribe(topic) .SetMessageHandler(messageHandler) .Start(); } }
private void Initialize() { var assemblies = new[] { Assembly.GetExecutingAssembly() }; var enode = ECommonConfiguration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .CreateENode(new ConfigurationSetting()) .RegisterBusinessComponents(assemblies) .RegisterENodeComponents() .UseMySqlAggregateSnapshotter(); enode.GetCommonConfiguration() .BuildContainer(); enode.InitializeBusinessAssemblies(assemblies) .InitializeMySqlAggregateSnapshotter( "Datasource=mysql;Database=eventstore;uid=root;pwd=admin!@#;Allow User Variables=True;AutoEnlist=false;" ); }
public MongoDbEventStore_Tests() { var assemblies = new[] { Assembly.GetExecutingAssembly() }; var enode = ECommonConfiguration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .CreateENode(new ConfigurationSetting()) .RegisterBusinessComponents(assemblies) .RegisterENodeComponents() .UseMongoDbEventStore(); enode.GetCommonConfiguration() .BuildContainer(); enode.InitializeBusinessAssemblies(assemblies) .InitializeMongoDbEventStore(_mongoDbConfiguration); _store = ObjectContainer.Resolve <IEventStore>(); }
public RedisLockService_Tests() { var assemblies = new[] { Assembly.GetExecutingAssembly() }; var enode = ECommonConfiguration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .CreateENode(new ConfigurationSetting()) .RegisterBusinessComponents(assemblies) .RegisterENodeComponents() .UseRedisLockService(); enode.GetCommonConfiguration() .BuildContainer(); enode.InitializeBusinessAssemblies(assemblies) .InitializeRedisLockService(_redisOptions); _lockService = ObjectContainer.Resolve <ILockService>(); }
private static void Main(string[] args) { var assemblies = new[] { Assembly.GetExecutingAssembly() }; var enode = ECommonConfiguration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .CreateENode(new ConfigurationSetting()) .RegisterBusinessComponents(assemblies) .RegisterENodeComponents() .UseRedisLockService(); enode.GetCommonConfiguration() .BuildContainer(); enode.InitializeBusinessAssemblies(assemblies) .InitializeRedisLockService(_redisOptions); _lockService = ObjectContainer.Resolve <ILockService>(); var dic = new Dictionary <int, int>(); var tasks = new List <Task>(); for (int i = 0; i < 400; i++) { tasks.Add( _lockService.ExecuteInLockAsync("test", t => { dic.Add((int)t, System.Threading.Thread.CurrentThread.GetHashCode()); }, i)); } Task.WaitAll(tasks.ToArray()); Console.ReadKey(); }
private static void InitializeENodeFramework() { var assemblies = new[] { Assembly.GetExecutingAssembly() }; _configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .CreateENode() .RegisterENodeComponents() .UseMongoDbEventStore(); _configuration.GetCommonConfiguration() .BuildContainer(); _configuration.InitializeBusinessAssemblies(assemblies) .InitializeMongoDbEventStore(_mongoDbConfiguration); Console.WriteLine("ENode started..."); }
public static Configuration UseEQueue(this Configuration configuration, string brokerAddress, int producerPort = 5000, int consumerPort = 5001, int adminPort = 5002) { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents() .UseDeleteMessageByCountStrategy(10); IoCFactory.Instance.CurrentContainer .RegisterType <IMessageQueueClient, EQueueClient>(Lifetime.Singleton, new ConstructInjection(new ParameterInjection("brokerAddress", brokerAddress), new ParameterInjection("producerPort", producerPort), new ParameterInjection("consumerPort", consumerPort), new ParameterInjection("adminPort", adminPort))); return(configuration); }
static void InitializeENodeFramework() { var connectionString = ConfigurationManager.AppSettings["connectionString"]; var loggerFactory = new SerilogLoggerFactory(); loggerFactory.AddFileLogger("ECommon", "ecommon"); loggerFactory.AddFileLogger("EQueue", "equeue"); loggerFactory.AddFileLogger("ENode", "enode"); _configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseSerilog(loggerFactory) .UseJsonNet() .RegisterUnhandledExceptionHandler() .CreateENode() .RegisterENodeComponents() .UseSqlServerEventStore() .BuildContainer() .InitializeSqlServerEventStore(connectionString); Console.WriteLine("ENode started..."); }
static void InitializeENodeFramework() { var assemblies = new[] { Assembly.Load("NoteSample.Domain"), Assembly.Load("NoteSample.Commands"), Assembly.Load("NoteSample.CommandHandlers"), Assembly.GetExecutingAssembly() }; _configuration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .CreateENode() .RegisterENodeComponents() .RegisterBusinessComponents(assemblies) .InitializeBusinessAssemblies(assemblies); Console.WriteLine("ENode started..."); }
static void WriteChunkPerfTest() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .RegisterUnhandledExceptionHandler() .BuildContainer(); var storeRootPath = ConfigurationManager.AppSettings["storeRootPath"]; //文件存储根目录 var threadCount = int.Parse(ConfigurationManager.AppSettings["concurrentThreadCount"]); //并行写数据的线程数 var recordSize = int.Parse(ConfigurationManager.AppSettings["recordSize"]); //记录大小,字节为单位 var recordCount = int.Parse(ConfigurationManager.AppSettings["recordCount"]); //总共要写入的记录数 var syncFlush = bool.Parse(ConfigurationManager.AppSettings["syncFlush"]); //是否同步刷盘 FlushOption flushOption; Enum.TryParse(ConfigurationManager.AppSettings["flushOption"], out flushOption); //同步刷盘方式 var chunkSize = 1024 * 1024 * 1024; var flushInterval = 100; var maxRecordSize = 5 * 1024 * 1024; var chunkWriteBuffer = 128 * 1024; var chunkReadBuffer = 128 * 1024; var chunkManagerConfig = new ChunkManagerConfig( Path.Combine(storeRootPath, @"sample-chunks"), new DefaultFileNamingStrategy("message-chunk-"), chunkSize, 0, 0, flushInterval, false, syncFlush, flushOption, Environment.ProcessorCount * 8, maxRecordSize, chunkWriteBuffer, chunkReadBuffer, 5, 1, 1, 5, 10 * 10000, true); var chunkManager = new ChunkManager("sample-chunk", chunkManagerConfig, false); var chunkWriter = new ChunkWriter(chunkManager); chunkManager.Load(ReadRecord); chunkWriter.Open(); var record = new BufferLogRecord { RecordBuffer = new byte[recordSize] }; var count = 0L; var performanceService = ObjectContainer.Resolve <IPerformanceService>(); performanceService.Initialize("WriteChunk").Start(); for (var i = 0; i < threadCount; i++) { Task.Factory.StartNew(() => { while (true) { var current = Interlocked.Increment(ref count); if (current > recordCount) { break; } var start = DateTime.Now; chunkWriter.Write(record); performanceService.IncrementKeyCount("default", (DateTime.Now - start).TotalMilliseconds); } }); } Console.ReadLine(); chunkWriter.Close(); chunkManager.Close(); }
private void InitializeKafka( bool useMockEventStore = false, bool useMockPublishedVersionStore = false, bool useMockDomainEventPublisher = false, bool useMockApplicationMessagePublisher = false, bool useMockPublishableExceptionPublisher = false) { var brokerAddresses = Root["Kafka:BrokerAddresses"]; var assemblies = new[] { Assembly.GetExecutingAssembly() }; _enodeConfiguration = ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .CreateENode() .RegisterENodeComponents() .UseEventStore(useMockEventStore) .UsePublishedVersionStore(useMockPublishedVersionStore) .UseAggregateSnapshot(useMockPublishedVersionStore) .RegisterBusinessComponents(assemblies) .InitializeKafka(GetIPEndPointFromAddresses(brokerAddresses)) .UseKafka(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockPublishableExceptionPublisher) .BuildContainer(); var eventStoreConnectionString = Root["ENode:EventStoreConnectionString"]; var eventStoreDatabase = Root["ENode:EventStoreDatabaseName"]; if (!useMockEventStore) { _enodeConfiguration.InitializeMongoDbEventStore(new MongoDbConfiguration() { ConnectionString = eventStoreConnectionString, DatabaseName = eventStoreDatabase }); } if (!useMockPublishedVersionStore) { _enodeConfiguration.InitializeMongoDbPublishedVersionStore(new MongoDbConfiguration() { ConnectionString = eventStoreConnectionString, DatabaseName = eventStoreDatabase }); _enodeConfiguration.InitializeMongoDbAggregateSnapshotter(new MongoDbConfiguration() { ConnectionString = eventStoreConnectionString, DatabaseName = eventStoreDatabase }); } var strBrokerAddresses = Root["Kafka:BrokerAddresses"]; var ipEndPoints = new List <IPEndPoint>(); var addressList = strBrokerAddresses.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (var address in addressList) { var array = address.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); var endpoint = SocketUtils.GetIPEndPointFromHostName(array[0], int.Parse(array[1])); ipEndPoints.Add(endpoint); } _enodeConfiguration .InitializeBusinessAssemblies(assemblies) .StartKafka() .Start(); _commandService = ObjectContainer.Resolve <ICommandService>(); _memoryCache = ObjectContainer.Resolve <IMemoryCache>(); _eventStore = ObjectContainer.Resolve <IEventStore>(); _publishedVersionStore = ObjectContainer.Resolve <IPublishedVersionStore>(); _domainEventPublisher = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >(); _applicationMessagePublisher = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >(); _publishableExceptionPublisher = ObjectContainer.Resolve <IMessagePublisher <IPublishableException> >(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest)); _logger.Info("----ENode initialized."); }
static void AddAggregateEventTest() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .RegisterUnhandledExceptionHandler() .RegisterEStoreComponents() .BuildContainer(); var chunkFileStoreRootPath = @"d:\event-store"; var eventDataChunkDataSize = 256 * 1024 * 1024; var indexChunkDataSize = 256 * 1024 * 1024; var chunkFlushInterval = 100; var chunkCacheMaxCount = 15; var chunkCacheMinCount = 15; var maxDataLogRecordSize = 5 * 1024 * 1024; var maxIndexLogRecordSize = 5 * 1024 * 1024; var chunkWriteBuffer = 128 * 1024; var chunkReadBuffer = 128 * 1024; var syncFlush = false; var flushOption = FlushOption.FlushToOS; var enableCache = true; var preCacheChunkCount = 10; var chunkLocalCacheSize = 300000; var eventDataChunkConfig = new ChunkManagerConfig( Path.Combine(chunkFileStoreRootPath, "event-data-chunks"), new DefaultFileNamingStrategy("event-data-chunk-"), eventDataChunkDataSize, 0, 0, chunkFlushInterval, enableCache, syncFlush, flushOption, Environment.ProcessorCount * 8, maxDataLogRecordSize, chunkWriteBuffer, chunkReadBuffer, chunkCacheMaxCount, chunkCacheMinCount, preCacheChunkCount, 5, chunkLocalCacheSize, true); var eventIndexChunkConfig = new ChunkManagerConfig( Path.Combine(chunkFileStoreRootPath, "event-index-chunks"), new DefaultFileNamingStrategy("event-index-chunk-"), indexChunkDataSize, 0, 0, chunkFlushInterval, enableCache, syncFlush, flushOption, Environment.ProcessorCount * 8, maxIndexLogRecordSize, chunkWriteBuffer, chunkReadBuffer, chunkCacheMaxCount, chunkCacheMinCount, preCacheChunkCount, 5, chunkLocalCacheSize, true); var commandIndexChunkConfig = new ChunkManagerConfig( Path.Combine(chunkFileStoreRootPath, "command-index-chunks"), new DefaultFileNamingStrategy("command-index-chunk-"), indexChunkDataSize, 0, 0, chunkFlushInterval, enableCache, syncFlush, flushOption, Environment.ProcessorCount * 8, maxIndexLogRecordSize, chunkWriteBuffer, chunkReadBuffer, chunkCacheMaxCount, chunkCacheMinCount, preCacheChunkCount, 5, chunkLocalCacheSize, true); var eventStore = ObjectContainer.Resolve <IEventStore>() as DefaultEventStore; eventStore.Init(eventDataChunkConfig, eventIndexChunkConfig, commandIndexChunkConfig); eventStore.Start(); var eventStream = new TestEventStream { AggregateRootId = ObjectId.GenerateNewStringId(), AggregateRootType = "Note", Events = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", Timestamp = DateTime.UtcNow.Ticks }; var totalCount = 10000000; var count = 0; var performanceService = ObjectContainer.Resolve <IPerformanceService>(); performanceService.Initialize("WriteChunk").Start(); Task.Factory.StartNew(() => { while (true) { try { var current = Interlocked.Increment(ref count); if (current > totalCount) { break; } var start = DateTime.Now; eventStream.Version = current; eventStream.CommandId = ObjectId.GenerateNewStringId(); eventStream.CommandCreateTimestamp = DateTime.Now.Ticks; eventStore.AppendEventStream(eventStream); performanceService.IncrementKeyCount("default", (DateTime.Now - start).TotalMilliseconds); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }); Console.ReadLine(); eventStore.Stop(); }
static void AddAggregateEventTest() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .RegisterUnhandledExceptionHandler() .RegisterEStoreComponents() .BuildContainer(); var eventStore = InitEventStore(); var totalCount = 100000000; var index = 0; var performanceService = ObjectContainer.Resolve <IPerformanceService>(); performanceService.Initialize("WriteChunk").Start(); var aggregateRootId = ObjectId.GenerateNewStringId(); var aggregateRootType = "Note"; var events = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"; Task.Factory.StartNew(() => { while (true) { try { var start = DateTime.Now; var currentVersion = 0; var eventStreamList = new List <IEventStream>(); for (var i = 0; i < 5; i++) { currentVersion = Interlocked.Increment(ref index); var eventStream = new TestEventStream { AggregateRootId = aggregateRootId, AggregateRootType = aggregateRootType, Events = events, Timestamp = DateTime.UtcNow.Ticks, Version = currentVersion, CommandId = ObjectId.GenerateNewStringId(), CommandCreateTimestamp = DateTime.Now.Ticks }; eventStreamList.Add(eventStream); performanceService.IncrementKeyCount("default", (DateTime.Now - start).TotalMilliseconds); } eventStore.AppendEventStreams(eventStreamList); if (index > totalCount) { break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } }); Console.ReadLine(); eventStore.Stop(); }