public MessageProducerProvider(string appCode, string metaServer, MessageStore messageStore)
        {
            if (appCode == null || appCode.Length == 0)
            {
                throw new ArgumentException("appCode未配置");
            }

            Logger.Info("Start Constructor");
            try
            {
                if (Interlocked.Increment(ref _instanceCount) > 1)
                {
                    Logger.Warn("WARNING: MessageProducerProvider这个类很重,请确保在一个进程中创建[少量]的实例,严禁在服务的请求中创建实例。如果你确定你的用法没有问题可以忽略该错误日志");
                }

                _appCode            = appCode;
                _metaServer         = metaServer;
                _idGenerator        = new TimestampIdGenerator();
                _brokerGroupService = new BrokerGroupService(appCode, metaServer);
                Logger.Info("idGenerator inited");
                _sender = new QueueSender(_brokerGroupService);
                _store  = messageStore;
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "MessageProducerProvider Constructor error");
                throw;
            }
            finally
            {
            }
        }
Пример #2
0
        public NewQmqCluster(string name, BrokerGroupService brokerGroupService, string subject, bool isDelayMessage)
        {
            _waitAvaliable  = new ManualResetEventSlim();
            Name            = name;
            _subject        = subject;
            _isDelayMessage = isDelayMessage;

            _brokerGroupService = brokerGroupService;
        }
Пример #3
0
        public PullController(string appCode, string metaServer)
        {
            BrokerGroupService = new BrokerGroupService(appCode, metaServer);
            var sendMessageBackService = new SendMessageBackService(BrokerGroupService);

            AckMessageService      = new AckMessageService(BrokerGroupService);
            AckHandlerQueueManager = new AckHandlerQueueManager(AckMessageService, sendMessageBackService);
            PullMessageService     = new PullMessageService(AckHandlerQueueManager);
        }
Пример #4
0
 public QueueSender(BrokerGroupService brokerGroupService)
 {
     _brokerGroupService = brokerGroupService;
     _queue = new BatchExecutor <ProducerMessageImpl>("qmq-sender", 30, DoSend, 4);
 }
Пример #5
0
 public AckMessageService(BrokerGroupService brokerGroupService)
 {
     _brokerGroupService = brokerGroupService;
     _clientManager      = new NewQmqClientManager(new AckMessageDataTransformer());
 }
Пример #6
0
 public SendMessageBackService(BrokerGroupService brokerGroupService)
 {
     _brokerGroupService = brokerGroupService;
     _clientManager      = new NewQmqClientManager(new SendMessageDataTransformer());
 }