예제 #1
0
        static void InitializeECommon()
        {
            _message      = new byte[int.Parse(ConfigurationManager.AppSettings["MessageSize"])];
            _mode         = ConfigurationManager.AppSettings["Mode"];
            _messageCount = int.Parse(ConfigurationManager.AppSettings["MessageCount"]);

            var logContextText = "mode:" + _mode;

            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseSerilog()
            .RegisterUnhandledExceptionHandler()
            .BuildContainer();

            _logger             = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name);
            _performanceService = ObjectContainer.Resolve <IPerformanceService>();
            var setting = new PerformanceServiceSetting
            {
                AutoLogging            = false,
                StatIntervalSeconds    = 1,
                PerformanceInfoHandler = x =>
                {
                    _logger.InfoFormat("{0}, {1}, totalCount: {2}, throughput: {3}, averageThrughput: {4}, rt: {5:F3}ms, averageRT: {6:F3}ms", _performanceService.Name, logContextText, x.TotalCount, x.Throughput, x.AverageThroughput, x.RT, x.AverageRT);
                }
            };

            _performanceService.Initialize(_performanceKey, setting);
            _performanceService.Start();
        }
예제 #2
0
파일: Program.cs 프로젝트: RavenZZ/equeue
        static void InitializeEQueue()
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseLog4Net()
            .UseJsonNet()
            .RegisterUnhandledExceptionHandler()
            .RegisterEQueueComponents();

            var address       = ConfigurationManager.AppSettings["BrokerAddress"];
            var brokerAddress = string.IsNullOrEmpty(address) ? SocketUtils.GetLocalIPV4() : IPAddress.Parse(address);
            var clientCount   = int.Parse(ConfigurationManager.AppSettings["ClientCount"]);
            var setting       = new ConsumerSetting
            {
                ConsumeFromWhere   = ConsumeFromWhere.FirstOffset,
                MessageHandleMode  = MessageHandleMode.Parallel,
                BrokerAddress      = new IPEndPoint(brokerAddress, 5001),
                BrokerAdminAddress = new IPEndPoint(brokerAddress, 5002)
            };
            var messageHandler = new MessageHandler();

            for (var i = 1; i <= clientCount; i++)
            {
                new Consumer(ConfigurationManager.AppSettings["ConsumerGroup"], setting)
                .Subscribe(ConfigurationManager.AppSettings["Topic"])
                .SetMessageHandler(messageHandler)
                .Start();
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseLog4Net()
            .RegisterUnhandledExceptionHandler();

            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name);

            var serverIP            = ConfigurationManager.AppSettings["ServerAddress"];
            var mode                = ConfigurationManager.AppSettings["Mode"];
            var serverAddress       = string.IsNullOrEmpty(serverIP) ? SocketUtils.GetLocalIPV4() : IPAddress.Parse(serverIP);
            var parallelThreadCount = int.Parse(ConfigurationManager.AppSettings["ClientCount"]);
            var messageSize         = int.Parse(ConfigurationManager.AppSettings["MessageSize"]);
            var messageCount        = int.Parse(ConfigurationManager.AppSettings["MessageCount"]);
            var sleepMilliseconds   = int.Parse(ConfigurationManager.AppSettings["SleepMilliseconds"]);
            var batchSize           = int.Parse(ConfigurationManager.AppSettings["BatchSize"]);
            var message             = new byte[messageSize];
            var actions             = new List <Action>();

            for (var i = 0; i < parallelThreadCount; i++)
            {
                var client = new SocketRemotingClient(new IPEndPoint(serverAddress, 5000));
                client.Start();
                actions.Add(() => SendMessages(client, mode, messageCount, sleepMilliseconds, batchSize, message));
            }

            _watch.Start();
            Parallel.Invoke(actions.ToArray());
            Console.ReadLine();
        }
예제 #4
0
        static void InitializeENodeFramework()
        {
            var setting = new ConfigurationSetting
            {
                SqlDefaultConnectionString = ConfigurationManager.AppSettings["connectionString"],
                EnableGroupCommitEvent     = false
            };
            var assemblies = new[]
            {
                Assembly.Load("NoteSample.Domain"),
                Assembly.Load("NoteSample.CommandHandlers"),
                Assembly.Load("NoteSample.Commands"),
                Assembly.GetExecutingAssembly()
            };

            _configuration = ECommonConfiguration
                             .Create()
                             .UseAutofac()
                             .RegisterCommonComponents()
                             .UseLog4Net()
                             .UseJsonNet()
                             .RegisterUnhandledExceptionHandler()
                             .CreateENode(setting)
                             .RegisterENodeComponents()
                             .UseSqlServerEventStore()
                             .RegisterBusinessComponents(assemblies)
                             .InitializeBusinessAssemblies(assemblies)
                             .UseEQueue()
                             .StartEQueue();

            _commandService = ObjectContainer.Resolve <ICommandService>();
            _memoryCache    = ObjectContainer.Resolve <IMemoryCache>();
        }
예제 #5
0
파일: Program.cs 프로젝트: zoombjm/enode
        static void InitializeENodeFramework()
        {
            var setting = new ConfigurationSetting
            {
                SqlDefaultConnectionString = ConfigurationManager.AppSettings["connectionString"],
                EnableGroupCommitEvent     = bool.Parse(ConfigurationManager.AppSettings["batchCommit"]),
                GroupCommitMaxSize         = int.Parse(ConfigurationManager.AppSettings["batchSize"])
            };
            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(setting)
                             .RegisterENodeComponents()
                             .RegisterAllTypeCodes()
                             .UseSqlServerEventStore()
                             .RegisterBusinessComponents(assemblies)
                             .InitializeBusinessAssemblies(assemblies);

            Console.WriteLine("ENode started...");
        }
예제 #6
0
        static void InitializeEQueue()
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseLog4Net()
            .UseJsonNet()
            .RegisterUnhandledExceptionHandler()
            .RegisterEQueueComponents();
            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create("Program");

            var clientCount     = int.Parse(ConfigurationManager.AppSettings["ClientCount"]);
            var consumerSetting = new ConsumerSetting
            {
                HeartbeatBrokerInterval       = 1000,
                UpdateTopicQueueCountInterval = 1000,
                RebalanceInterval             = 1000,
                ConsumeFromWhere = ConsumeFromWhere.FirstOffset
            };
            var messageHandler = new MessageHandler();

            for (var i = 1; i <= clientCount; i++)
            {
                new Consumer("Consumer@" + i.ToString(), "SampleGroup", consumerSetting)
                .Subscribe("SampleTopic")
                .SetMessageHandler(messageHandler)
                .Start();
            }
        }
예제 #7
0
 static void InitializeEQueue()
 {
     var configuration = ECommonConfiguration
                         .Create()
                         .UseAutofac()
                         .RegisterCommonComponents()
                         .UseLog4Net()
                         .UseJsonNet()
                         .RegisterUnhandledExceptionHandler()
                         .RegisterEQueueComponents();
 }
예제 #8
0
 private static void InitializeECommon()
 {
     _ecommonConfiguration = ECommonConfiguration
                             .Create()
                             .UseAutofac()
                             .RegisterCommonComponents()
                             .UseLog4Net()
                             .UseJsonNet()
                             .RegisterUnhandledExceptionHandler();
     _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Bootstrap).FullName);
     _logger.Info("ECommon initialized.");
 }
예제 #9
0
        static void Main(string[] args)
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseLog4Net()
            .RegisterUnhandledExceptionHandler();

            new SocketRemotingServer().RegisterRequestHandler(100, new RequestHandler()).Start();
            Console.ReadLine();
        }
예제 #10
0
 static void InitializeEQueue()
 {
     ECommonConfiguration
     .Create()
     .UseAutofac()
     .RegisterCommonComponents()
     .UseLog4Net()
     .UseJsonNet()
     .RegisterEQueueComponents()
     .SetDefault <IQueueSelector, QueueAverageSelector>();
     _logger = ObjectContainer.Resolve <ILoggerFactory>().Create("Program");
 }
예제 #11
0
        static void InitializeECommon()
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseLog4Net()
            .RegisterUnhandledExceptionHandler();

            _logger          = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name);
            _scheduleService = ObjectContainer.Resolve <IScheduleService>();
        }
예제 #12
0
        static void InitializeEQueue()
        {
            var configuration = ECommonConfiguration
                                .Create()
                                .UseAutofac()
                                .RegisterCommonComponents()
                                .UseLog4Net()
                                .UseJsonNet()
                                .RegisterUnhandledExceptionHandler()
                                .RegisterEQueueComponents();

            var persistMode         = ConfigurationManager.AppSettings["persistMode"];
            var maxCacheMessageSize = int.Parse(ConfigurationManager.AppSettings["maxCacheMessageSize"]);

            if (persistMode == "in-memory")
            {
                configuration.UseInMemoryMessageStore(new InMemoryMessageStoreSetting {
                    MessageMaxCacheSize = maxCacheMessageSize
                });
            }
            else if (persistMode == "sql")
            {
                var connectionString       = ConfigurationManager.AppSettings["connectionString"];
                var persistMessageInterval = int.Parse(ConfigurationManager.AppSettings["persistMessageInterval"]);
                var persistMessageMaxCount = int.Parse(ConfigurationManager.AppSettings["persistMessageMaxCount"]);
                var messageLogFile         = ConfigurationManager.AppSettings["messageLogFile"];

                var queueStoreSetting = new SqlServerQueueStoreSetting
                {
                    ConnectionString = connectionString
                };
                var messageStoreSetting = new SqlServerMessageStoreSetting
                {
                    ConnectionString       = connectionString,
                    PersistMessageInterval = persistMessageInterval,
                    PersistMessageMaxCount = persistMessageMaxCount,
                    MessageLogFile         = messageLogFile,
                    MessageMaxCacheSize    = maxCacheMessageSize
                };
                var offsetManagerSetting = new SqlServerOffsetManagerSetting
                {
                    ConnectionString = connectionString
                };

                configuration
                .UseSqlServerQueueStore(queueStoreSetting)
                .UseSqlServerMessageStore(messageStoreSetting)
                .UseSqlServerOffsetManager(offsetManagerSetting);
            }
        }
예제 #13
0
        private static void InitializeECommon()
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseSerilog()
            .RegisterUnhandledExceptionHandler()
            .BuildContainer();

            _logger         = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name);
            _remotingServer = new SocketRemotingServer().Start();
            PushTestMessageToAllClients();
            Console.ReadLine();
        }
예제 #14
0
 static void InitializeEQueue()
 {
     ECommonConfiguration
     .Create()
     .UseAutofac()
     .RegisterCommonComponents()
     .UseLog4Net()
     .UseJsonNet()
     .RegisterUnhandledExceptionHandler()
     .RegisterEQueueComponents()
     .SetDefault <IQueueSelector, QueueAverageSelector>();
     _scheduleService  = ObjectContainer.Resolve <IScheduleService>();
     _logger           = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name);
     _sendResultLogger = ObjectContainer.Resolve <ILoggerFactory>().Create("SendResultLogger");
 }
예제 #15
0
        private static void InitializeECommon()
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseSerilog()
            .RegisterUnhandledExceptionHandler()
            .BuildContainer();

            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name);
            var serverIP      = ConfigurationManager.AppSettings["ServerAddress"];
            var serverAddress = string.IsNullOrEmpty(serverIP) ? IPAddress.Loopback : IPAddress.Parse(serverIP);

            _client = new SocketRemotingClient("Client", new IPEndPoint(serverAddress, 5000)).Start();
            _client.RegisterRemotingServerMessageHandler(100, new RemotingServerMessageHandler());
        }
예제 #16
0
        static void InitializeEQueue()
        {
            var configuration = ECommonConfiguration
                                .Create()
                                .UseAutofac()
                                .RegisterCommonComponents()
                                .UseLog4Net()
                                .UseJsonNet()
                                .RegisterUnhandledExceptionHandler()
                                .RegisterEQueueComponents();

            BrokerController.Create(new BrokerSetting(ConfigurationManager.AppSettings["fileStoreRootPath"], 1024 * 1024 * 1024, enableCache: false));

            _messageStore    = ObjectContainer.Resolve <IMessageStore>();
            _scheduleService = ObjectContainer.Resolve <IScheduleService>();
            _logger          = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(Program).Name);

            _messageStore.Load();
            _messageStore.Start();
        }
예제 #17
0
        static void InitializeEQueue()
        {
            ECommonConfiguration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseLog4Net()
            .UseJsonNet()
            .RegisterUnhandledExceptionHandler()
            .RegisterEQueueComponents();

            var setting = new ConsumerSetting
            {
                ConsumeFromWhere   = ConsumeFromWhere.FirstOffset,
                MessageHandleMode  = MessageHandleMode.Sequential,
                BrokerAddress      = new IPEndPoint(SocketUtils.GetLocalIPV4(), 5001),
                BrokerAdminAddress = new IPEndPoint(SocketUtils.GetLocalIPV4(), 5002)
            };

            new Consumer("group1", setting)
            .Subscribe("topic1")
            .SetMessageHandler(new MessageHandler())
            .Start();
        }