public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IServiceProvider provider, IEventBusSubscriptionsManager subsManager, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _serviceProvider = provider; _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, ILifetimeScope autofac, ISubscriptionManager subsManager, string queueName = null, int retryCount = 5, string xchangeSuffix = "", string xchangeType = "direct") { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _xchangeType = xchangeType; RABITMQ_EXCHANGE += xchangeSuffix; _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _subsManager = subsManager ?? new SubscriptionManager(); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _autofac = autofac; _retryCount = retryCount; }
public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, ILifetimeScope autofac, IEventBusSubscriptionsManager subsManager, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _consumerChannel = CreateConsumerChannel(); _subsManager.OnEventRemoved += OnEventRemoved; _autofac = autofac; _queueName = queueName; _retryCount = retryCount; }
public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IServiceScopeFactory serviceScopeFactory, IEventBusSubscriptionsManager subsManager, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _handlers = new Dictionary <string, List <Type> >(); _serviceScopeFactory = serviceScopeFactory; _eventTypes = new List <Type>(); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public RabbitMQEventBus(IConfiguration configuration, ILogger <RabbitMQEventBus> logger, IEventStorage eventStorage) { this.connection = new RabbitMQPersistentConnection(configuration, logger); policy = Policy.Handle <BrokerUnreachableException>() .Or <SocketException>() .Or <InvalidOperationException>() .WaitAndRetry(retryCount, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, time) => { logger.LogWarning(ex.ToString()); }); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.consumerChannel = CreateConsumerChannel(); this.eventStorage = eventStorage; }
public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, ILifetimeScope autofac, IEventBusSubscriptionsManager subsManager, string exchangeName, string queueName = null, int retryCount = 5) { BROKER_NAME = exchangeName; AUTOFAC_SCOPE_NAME = exchangeName; _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _autofac = autofac; _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; _logger.LogInformation("EventBusRabbitMQ Init: " + exchangeName); }
public EventBusRabbitMQ(IRabbitMQPersistentConnection rabbitMQPersistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager eventBusSubscriptionsManager, IServiceScopeFactory serviceScope, ILifetimeScope lifetimeScope, string queueName, int retries = 5) { _rabbitMQPersistentConnection = rabbitMQPersistentConnection ?? throw new ArgumentNullException(nameof(rabbitMQPersistentConnection)); _logger = logger; _retryCount = retries; _queueName = queueName; _serviceScope = serviceScope; _lifetimeScope = lifetimeScope; _eventBusSubscriptionsManager = eventBusSubscriptionsManager ?? new InMemoryEventBusSubscriptionsManager(); _consumerChannel = CreateConsumerChannel(); _eventBusSubscriptionsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbit(/*IRabbitMQPersistentConnection persistentConnection*/ /*string queueName = null, int retryCount = 5*/) { var _connection = new ConnectionFactory() { UserName = "******", Password = "******", HostName = "127.0.0.1" }; _persistentConnection = _persistentConnection ?? new DefaultRabbitMQPersistentConnection(_connection);// persistentConnection; //_queueName = queueName; //_retryCount = retryCount; }
public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, ILifetimeScope autofac, IEventBusSubscriptionsManager subsManager, string queueName = null, int retryCount = 5) : base(logger, subsManager, autofac, appName: APP_NAME, autofacScopeName: AUTOFAC_SCOPE_NAME) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbitMQ( IRabbitMQPersistentConnection persistentConnection, ILogger logger, IEventBusSubscriptionsManager subsManager, IIntegrationEventHandlerFactory integrationEventHandlerFactory, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _integrationEventHandlerFactory = integrationEventHandlerFactory; _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _queueName = queueName; _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbitMQ( ILogger <EventBusRabbitMQ> logger, IRabbitMQPersistentConnection persistentConnection, IEventBusSubscriptionsManager subsManager, IServiceScopeFactory serviceScopeFactory, EventBusOptions options) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _options = options; _serviceScopeFactory = serviceScopeFactory; _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _consumerChannel = CreateConsumerChannel(); _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
internal EventBusBase(ILogger <TEventBus> logger, IServiceProvider autofac, IEventSeralize seralize, IRabbitMQPersistentConnection persistentConnection, int cacheCount = 100) { _conn = persistentConnection ?? throw new ArgumentNullException(nameof(IRabbitMQPersistentConnection)); _conn.ConnectFail += Conn_ConnectFail; ConnectionName = _conn.Name; _logger = logger ?? throw new ArgumentNullException(nameof(ILogger <TEventBus>)); __seralize = seralize ?? throw new ArgumentNullException(nameof(IEventSeralize)); consumerInfos = new List <ConsumerConfig <TEventBus, TSub> >(); hanlerCacheMgr = new EventHanlerCacheMgr(cacheCount, autofac); _pub_sub = persistentConnection.SubsFactory.GetOrCreateByQueue("publish"); channels = new ThreadDispatcher <QueueItem <TEventBus, TSub> >(StartProcess, Math.Min(8, Environment.ProcessorCount / 2)) { UnCatchedException = LogError }; }
public RabbitBus( IAdvancedBus advanced, IPubSub pubSub, IRpc rpc, ISendReceive sendReceive, IScheduler scheduler, IRabbitMQPersistentConnection connection) { _advanced = advanced; _pubsub = pubSub; _rpc = rpc; _sendreceive = sendReceive; _scheduler = scheduler; _connection = connection; }
public RabbitMQTest() { _services = new ServiceCollection(); _services.AddLinFx() .AddRabbitMQ(options => { options.Host = "127.0.0.1"; options.UserName = "******"; options.Password = "******"; }); var container = _services.BuildServiceProvider(); _persistentConnection = container.GetService <IRabbitMQPersistentConnection>(); }
public EventBusRabbitMQ( IRabbitMQPersistentConnection persistentConnection, IEventBusSubscriptionsManager subscriptionsManager, ILifetimeScope autofac, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection; _subscriptionsManager = subscriptionsManager; _autofac = autofac; _retryCount = retryCount; _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _subscriptionsManager.OnEventRemoved += OnEventRemoved; }
/// <summary> /// Ctor /// </summary> /// <param name="persistentConnection"></param> /// <param name="logger"></param> /// <param name="autofac"></param> /// <param name="subsManager"></param> /// <param name="options"></param> public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IServiceProvider autofac, IEventBusSubscriptionsManager subsManager, IOptions <EventBusRabbitMqOptions> options) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? throw new ArgumentNullException(nameof(subsManager)); _options = options.Value; _exchangeName = _options.ExchangeName; _queueName = _options.QueueName; _consumerChannels = new Dictionary <string, IModel>(); _autofac = autofac; _prefetchCount = _options.PrefetchCount; _retryCount = _options.RetryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IServiceCollection services, Type type, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _services = services ?? throw new ArgumentNullException(nameof(services)); _type = type ?? throw new ArgumentNullException(nameof(type)); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); StartBasicConsume(); _retryCount = retryCount; }
static void BootStrap() { var assambly = Assembly.GetAssembly(typeof(Program)); var config = Configuration.Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .UseRabbitMQ("10.3.80.42", "/hr", "admin", "admin"); using (var scope = ObjectContainer.Current.BeginLifetimeScope()) { _rabbitMQPersistentConnection = scope.Resolve <IRabbitMQPersistentConnection>(); } }
public RabbitMQEventBus( IServiceProvider serviceProvider, IRabbitMQPersistentConnection persistentConnection, TypeKeyDirectory typeKeyDirectory, string exchangeName, string queueName, int retryCount) { this.serviceProvider = serviceProvider; this.persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); this.typeKeyDirectory = typeKeyDirectory; this.exchangeName = exchangeName; this.queueName = queueName; this.retryCount = retryCount; _consumerChannel = CreateConsumerChannel(); }
//private string _queueName; public EventBusRabbitMQ(IServiceProvider serviceProvider, int retryCount = 5) { _serviceProvider = serviceProvider; var logger = _serviceProvider.GetRequiredService <ILogger <EventBusRabbitMQ> >(); var persistentConnection = _serviceProvider.GetRequiredService <IRabbitMQPersistentConnection>(); var subsManager = _serviceProvider.GetRequiredService <IEventBusSubscriptionsManager>(); _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); //_consumerChannel = CreateConsumerChannel(); _consumerChannels = new Dictionary <string, IModel>(); _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
/// <summary> /// RabbitMQ事件总线 /// </summary> /// <param name="logger">日志</param> /// <param name="persistentConnection">RabbitMQ持久连接</param> /// <param name="autofac">autofac容器</param> /// <param name="subsManager">事件总线订阅管理器</param> /// <param name="queueName">队列名称</param> /// <param name="retryCount">重试次数</param> public RabbitMQEventBus( ILogger <RabbitMQEventBus> logger, IRabbitMQPersistentConnection persistentConnection, ILifetimeScope autofac, IEventBusSubscriptionsManage subsManager, int retryCount, string queueName) { _logger = logger; _persistentConnection = persistentConnection; _subsManager = subsManager; _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _autofac = autofac; _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
/// <summary> /// Do a passive exchange declaration. /// Or /// (Spec method) Declare an exchange. /// This method performs a "passive declare" on an exchange, which verifies whether. It will do nothing if the exchange already exists and result in a channel-levelprotocol exception (channel closure) if not. /// </summary> /// <param name="persistentConnection"></param> /// <param name="exchange"></param> /// <param name="type"></param> /// <param name="durable"></param> /// <param name="autoDelete"></param> /// <param name="arguments"></param> public static IModel ExchangeDeclare(this IRabbitMQPersistentConnection persistentConnection, string exchange, string type = ExchangeType.Topic, bool durable = true, bool autoDelete = false, IDictionary <string, object> arguments = null) { IModel channel; try { channel = persistentConnection.CreateModel(); channel.ExchangeDeclarePassive(exchange); } catch { channel = persistentConnection.CreateModel(); channel.ExchangeDeclare(exchange, type, durable, autoDelete, arguments); } return(channel); }
/// <summary> /// RabbitMQ事件总线 /// </summary> /// <param name="persistentConnection">RabbitMQ持久连接</param> /// <param name="logger">日志</param> /// <param name="service">生命周期</param> /// <param name="subsManager">订阅管理器</param> /// <param name="queueName">队列名称</param> /// <param name="exchangeName">交换机名称</param> /// <param name="retryCount">重试次数</param> /// <param name="autoListening"></param> public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IServiceProvider service, IEventBusSubscriptionsManager subsManager, string queueName, string exchangeName = "MateralTFMSEventBusExchange", int retryCount = 5, bool autoListening = true) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _queueName = queueName; _service = service; _retryCount = retryCount; _exchangeName = exchangeName; _consumerChannel = CreateConsumerChannel(); _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; if (autoListening) { StartListening(); } }
public EventBusRabbitMQ(IServiceScopeFactory serviceScopeFactory, IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager subsManager, string queueName = null, int retryCount = 5) { this.serviceScopeFactory = serviceScopeFactory; this.persistentConnection = persistentConnection; this.logger = logger; this.subsManager = subsManager; this.queueName = queueName; this.retryCount = retryCount; subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public RabbitMQEventSubscriber( IRabbitMQPersistentConnection persistentConnection, string exchangeName, string queueName, ILogger <RabbitMQEventSubscriber> logger, int retryCount ) { _persistentConnection = persistentConnection; _exchangeName = exchangeName; _queueName = queueName; _logger = logger; _retryCount = retryCount; _consumerChannel = CreateConsumerChannel(); }
public OfficeServiceClient( [FromServices] IRabbitMQPersistentConnection rabbitMQPersistentConnection, [FromServices] ILogger <OfficeServiceClient> logger) { this.logger = logger; logger.LogInformation("OfficeServiceClient is created"); channel = rabbitMQPersistentConnection.CreateModel(); var correlationId = Guid.NewGuid().ToString(); properties = channel.CreateBasicProperties(); properties.CorrelationId = correlationId; properties.ReplyTo = ResponseQueueName; consumer = new EventingBasicConsumer(channel); channel.ExchangeDeclare(RequestExchange, ExchangeType.Direct); channel.ExchangeDeclare(ResponseExchange, ExchangeType.Direct); channel.QueueDeclare(RequestQueueName, false, false, true); channel.QueueDeclare(ResponseQueueName, false, false, true); channel.QueueBind(ResponseQueueName, ResponseExchange, ResponseBindingKeys[0]); channel.QueueBind(ResponseQueueName, ResponseExchange, ResponseBindingKeys[1]); channel.QueueBind(RequestQueueName, RequestExchange, RequestBindingKey); consumer.Received += (model, ea) => { var body = ea.Body; var response = Encoding.UTF8.GetString(body.ToArray()); var feedback = JsonConvert.DeserializeObject <Response <GetOfficeResponse> >(response); if (ea.BasicProperties.CorrelationId == correlationId) { Responses.Add(feedback); logger.LogInformation("Office is received"); } else { logger.LogInformation( "Message with correlation id '{CorrelationId}' does not match the office client correlation id", ea.BasicProperties.CorrelationId); } }; }
public RabbitMQEventSubscriber( ILogger <RabbitMQEventSubscriber> logger, IOptions <RabbitMQOptions> options, IServiceProvider serviceProvider, IRabbitMQPersistentConnection persistentConnection, IEventBusSubscriptionsManager subsManager, IEnumerable <SubscriberInfo> subscribers) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _options = options.Value; _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _subsManager = subsManager ?? throw new ArgumentNullException(nameof(subsManager)); _subscribers = subscribers; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbitMQ(RabbitMQConfig config, IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager subsManager, ILifetimeScope autofac, string queueName = null) { _config = config ?? throw new ArgumentNullException(nameof(config)); _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); _autofac = autofac; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbitMQ( IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, ILifetimeScope lifetimeScope, IEventBusSubscriptionsManager subscriptionManager, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection; _logger = logger; _lifetimeScope = lifetimeScope; _subscriptionManager = subscriptionManager; _queueName = queueName; _retryCount = retryCount; _consumerChannel = CreateConsumerChannel(); _subscriptionManager.OnEventRemoved += SubsManager_OnEventRemoved; }
public EventBusRabbitMQ( string brokerName, IRabbitMQPersistentConnection persistentConnection, IEventBusSubscriptionsManager subsManager, IIntegrationEventHandlerFactory integrationEventHandlerFactory, IEventLogger eventLogger, ILogger logger) : this( brokerName, string.Empty, 0, persistentConnection, subsManager, integrationEventHandlerFactory, eventLogger, logger) { }