private BrokerController(BrokerSetting setting) { Setting = setting ?? new BrokerSetting(); _producerManager = IocManager.Instance.Resolve <ProducerManager>(); _consumerManager = IocManager.Instance.Resolve <ConsumerManager>(); _messageStore = IocManager.Instance.Resolve <IMessageStore>(); _consumeOffsetStore = IocManager.Instance.Resolve <IConsumeOffsetStore>(); _queueStore = IocManager.Instance.Resolve <IQueueStore>(); _suspendedPullRequestManager = IocManager.Instance.Resolve <SuspendedPullRequestManager>(); _chunkReadStatisticService = IocManager.Instance.Resolve <IChunkStatisticService>(); _producerSocketRemotingServer = new SocketRemotingServer("EQueue.Broker.ProducerRemotingServer", Setting.ProducerAddress, Setting.SocketSetting); _consumerSocketRemotingServer = new SocketRemotingServer("EQueue.Broker.ConsumerRemotingServer", Setting.ConsumerAddress, Setting.SocketSetting); _adminSocketRemotingServer = new SocketRemotingServer("EQueue.Broker.AdminRemotingServer", Setting.AdminAddress, Setting.SocketSetting); _logger = IocManager.Instance.Resolve <ILoggerFactory>().Create(GetType().FullName); _producerSocketRemotingServer.RegisterConnectionEventListener(new ProducerConnectionEventListener(this)); _consumerSocketRemotingServer.RegisterConnectionEventListener(new ConsumerConnectionEventListener(this)); RegisterRequestHandlers(); _service = new ConsoleEventHandlerService(); _service.RegisterClosingEventHandler(eventCode => { Shutdown(); }); }
public static BrokerController Create(BrokerSetting setting = null) { _instance = new BrokerController(setting); return(_instance); }