Implementing MultiEventBusRabbitMQ to allow for multiple connections to multiple virtual hosts in RabbitMQ, where it is intended to have one virtual host per tenant to achieve tenant isolation.

TODO: Implement in all microservices, and fix selection of actualEventBus in the Publish method in MultiEventBusRabbitMQ
This commit is contained in:
espent1004 2020-02-04 23:25:10 +01:00
parent d940d9a65d
commit 2a42053817
17 changed files with 115 additions and 73 deletions

View File

@ -7,18 +7,20 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions
{ {
void Publish(IntegrationEvent @event); void Publish(IntegrationEvent @event);
void Subscribe<T, TH>(String vHost) void Subscribe<T, TH>()
where T : IntegrationEvent where T : IntegrationEvent
where TH : IIntegrationEventHandler<T>; where TH : IIntegrationEventHandler<T>;
void SubscribeDynamic<TH>(string eventName, String vHost) void SubscribeDynamic<TH>(string eventName)
where TH : IDynamicIntegrationEventHandler; where TH : IDynamicIntegrationEventHandler;
void UnsubscribeDynamic<TH>(string eventName, String vHost) void UnsubscribeDynamic<TH>(string eventName)
where TH : IDynamicIntegrationEventHandler; where TH : IDynamicIntegrationEventHandler;
void Unsubscribe<T, TH>(String vHost) void Unsubscribe<T, TH>()
where TH : IIntegrationEventHandler<T> where TH : IIntegrationEventHandler<T>
where T : IntegrationEvent; where T : IntegrationEvent;
String GetVHost();
} }
} }

View File

@ -177,4 +177,25 @@ class CompositeHandler
{ {
public String TenantVHostName { get; set; } public String TenantVHostName { get; set; }
public String EventName { get; set; } public String EventName { get; set; }
protected bool Equals(CompositeHandler other)
{
return TenantVHostName == other.TenantVHostName && EventName == other.EventName;
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != this.GetType()) return false;
return Equals((CompositeHandler) obj);
}
public override int GetHashCode()
{
unchecked
{
return ((TenantVHostName != null ? TenantVHostName.GetHashCode() : 0) * 397) ^ (EventName != null ? EventName.GetHashCode() : 0);
}
}
} }

View File

@ -34,13 +34,14 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
private static readonly String tenantManagerUrl = @"http://tenantmanager/"; private static readonly String tenantManagerUrl = @"http://tenantmanager/";
private readonly int _retryCount; private readonly int _retryCount;
private readonly Dictionary<int, String> _tenantInfo; private readonly Dictionary<int, String> _tenantInfo;
public String vHost { get; set; }
private IModel _consumerChannel; private IModel _consumerChannel;
private string _queueName; private string _queueName;
public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger<EventBusRabbitMQ> logger, public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger<EventBusRabbitMQ> logger,
ILifetimeScope autofac, IEventBusSubscriptionsManager subsManager, string queueName = null, ILifetimeScope autofac, IEventBusSubscriptionsManager subsManager, String vhost, string queueName = null,
int retryCount = 5) int retryCount = 5)
{ {
_persistentConnection = _persistentConnection =
@ -55,6 +56,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
_tenantInfo = new Dictionary<int, string>(); _tenantInfo = new Dictionary<int, string>();
_tenantInfo.Add(1, "TenantA"); _tenantInfo.Add(1, "TenantA");
_tenantInfo.Add(2, "TenantB"); _tenantInfo.Add(2, "TenantB");
vHost = vhost;
} }
private void SubsManager_OnEventRemoved(object sender, string eventName) private void SubsManager_OnEventRemoved(object sender, string eventName)
@ -126,23 +128,23 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
} }
} }
public void SubscribeDynamic<TH>(string eventName, String vHost) public void SubscribeDynamic<TH>(string eventName)
where TH : IDynamicIntegrationEventHandler where TH : IDynamicIntegrationEventHandler
{ {
_logger.LogInformation("Subscribing to dynamic event {EventName} with {EventHandler}", eventName, _logger.LogInformation("Subscribing to dynamic event {EventName} with {EventHandler}", eventName,
typeof(TH).GetGenericTypeName()); typeof(TH).GetGenericTypeName());
DoInternalSubscription(eventName, vHost); DoInternalSubscription(eventName);
_subsManager.AddDynamicSubscription<TH>(eventName, vHost); _subsManager.AddDynamicSubscription<TH>(eventName, vHost);
StartBasicConsume(); StartBasicConsume();
} }
public void Subscribe<T, TH>(String vHost) public void Subscribe<T, TH>()
where T : IntegrationEvent where T : IntegrationEvent
where TH : IIntegrationEventHandler<T> where TH : IIntegrationEventHandler<T>
{ {
var eventName = _subsManager.GetEventKey<T>(); var eventName = _subsManager.GetEventKey<T>();
DoInternalSubscription(eventName, vHost); DoInternalSubscription(eventName);
_logger.LogInformation("Subscribing to event {EventName} with {EventHandler}", eventName, _logger.LogInformation("Subscribing to event {EventName} with {EventHandler}", eventName,
typeof(TH).GetGenericTypeName()); typeof(TH).GetGenericTypeName());
@ -151,7 +153,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
StartBasicConsume(); StartBasicConsume();
} }
private void DoInternalSubscription(string eventName, String vHost) private void DoInternalSubscription(string eventName)
{ {
var containsKey = _subsManager.HasSubscriptionsForEvent(eventName, vHost); var containsKey = _subsManager.HasSubscriptionsForEvent(eventName, vHost);
if (!containsKey) if (!containsKey)
@ -170,7 +172,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
} }
} }
public void Unsubscribe<T, TH>(String vHost) public void Unsubscribe<T, TH>()
where T : IntegrationEvent where T : IntegrationEvent
where TH : IIntegrationEventHandler<T> where TH : IIntegrationEventHandler<T>
{ {
@ -181,7 +183,12 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
_subsManager.RemoveSubscription<T, TH>(vHost); _subsManager.RemoveSubscription<T, TH>(vHost);
} }
public void UnsubscribeDynamic<TH>(string eventName, String vHost) public string GetVHost()
{
return vHost;
}
public void UnsubscribeDynamic<TH>(string eventName)
where TH : IDynamicIntegrationEventHandler where TH : IDynamicIntegrationEventHandler
{ {
_subsManager.RemoveDynamicSubscription<TH>(eventName, vHost); _subsManager.RemoveDynamicSubscription<TH>(eventName, vHost);
@ -337,11 +344,11 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
{ {
_logger.LogWarning("Processing RabbitMQ event: {EventName}", eventName); _logger.LogWarning("Processing RabbitMQ event: {EventName}", eventName);
if (_subsManager.HasSubscriptionsForEvent(eventName)) if (_subsManager.HasSubscriptionsForEvent(eventName, vHost))
{ {
using (var scope = _autofac.BeginLifetimeScope(AUTOFAC_SCOPE_NAME)) using (var scope = _autofac.BeginLifetimeScope(AUTOFAC_SCOPE_NAME))
{ {
var subscriptions = _subsManager.GetHandlersForEvent(eventName); var subscriptions = _subsManager.GetHandlersForEvent(eventName, vHost);
foreach (var subscription in subscriptions) foreach (var subscription in subscriptions)
{ {
if (subscription.IsDynamic) if (subscription.IsDynamic)

View File

@ -1,4 +1,5 @@
using System.Collections.Generic; using System;
using System.Collections.Generic;
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
@ -6,7 +7,6 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
{ {
public class MultiEventBusRabbitMQ : IMultiEventBus public class MultiEventBusRabbitMQ : IMultiEventBus
{ {
private List<IEventBus> _eventBuses; private List<IEventBus> _eventBuses;
public MultiEventBusRabbitMQ(List<IEventBus> eventBuses) public MultiEventBusRabbitMQ(List<IEventBus> eventBuses)
@ -21,16 +21,20 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
public void Publish(IntegrationEvent @event) public void Publish(IntegrationEvent @event)
{ {
//TODO
var actualEventBus = _eventBuses.Find(e => e.GetVHost().Equals("TenantA"));
throw new System.NotImplementedException(); if (actualEventBus == null)
{
throw new Exception();
}
actualEventBus.Publish(@event);
} }
public void Subscribe<T, TH>() where T : IntegrationEvent where TH : IIntegrationEventHandler<T> public void Subscribe<T, TH>() where T : IntegrationEvent where TH : IIntegrationEventHandler<T>
{ {
_eventBuses.ForEach(e => _eventBuses.ForEach(e => { e.Subscribe<T, TH>(); });
{
e.Subscribe<T, TH>();
});
} }
} }
} }

View File

@ -1,4 +1,4 @@
namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus /*namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus
{ {
using Autofac; using Autofac;
using Microsoft.Azure.ServiceBus; using Microsoft.Azure.ServiceBus;
@ -206,3 +206,4 @@
} }
} }
} }
*/

View File

@ -21,14 +21,14 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Controllers
{ {
private readonly IBasketRepository _repository; private readonly IBasketRepository _repository;
private readonly IIdentityService _identityService; private readonly IIdentityService _identityService;
private readonly IEventBus _eventBus; private readonly IMultiEventBus _eventBus;
private readonly ILogger<BasketController> _logger; private readonly ILogger<BasketController> _logger;
public BasketController( public BasketController(
ILogger<BasketController> logger, ILogger<BasketController> logger,
IBasketRepository repository, IBasketRepository repository,
IIdentityService identityService, IIdentityService identityService,
IEventBus eventBus) IMultiEventBus eventBus)
{ {
_logger = logger; _logger = logger;
_repository = repository; _repository = repository;

View File

@ -86,7 +86,8 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
}); });
if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
/* if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IServiceBusPersisterConnection>(sp => services.AddSingleton<IServiceBusPersisterConnection>(sp =>
{ {
@ -97,8 +98,8 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger);
}); });
} }*/
else /* else
{ {
services.AddSingleton<IRabbitMQPersistentConnection>(sp => services.AddSingleton<IRabbitMQPersistentConnection>(sp =>
{ {
@ -120,7 +121,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
factory.Password = Configuration["EventBusPassword"]; factory.Password = Configuration["EventBusPassword"];
} }
//factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"]))
@ -133,7 +134,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
return new DefaultRabbitMQPersistentConnection(factory, logger, retryCount); return new DefaultRabbitMQPersistentConnection(factory, logger, retryCount);
}); });*/
services.AddSingleton<IMultiRabbitMQPersistentConnections>(sp => services.AddSingleton<IMultiRabbitMQPersistentConnections>(sp =>
{ {
@ -146,7 +147,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
}); });
} //}
RegisterEventBus(services); RegisterEventBus(services);
@ -324,7 +325,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
{ {
var subscriptionClientName = Configuration["SubscriptionClientName"]; var subscriptionClientName = Configuration["SubscriptionClientName"];
if (Configuration.GetValue<bool>("AzureServiceBusEnabled")) /*if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -338,7 +339,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
}); });
} }
else else
{ {*/
services.AddSingleton<IMultiEventBus, MultiEventBusRabbitMQ>(sp => services.AddSingleton<IMultiEventBus, MultiEventBusRabbitMQ>(sp =>
{ {
@ -354,10 +355,14 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
} }
List<IEventBus> eventBuses = new List<IEventBus>(); List<IEventBus> eventBuses = new List<IEventBus>();
multiRabbitMqPersistentConnections.GetConnections().ForEach(conn => eventBuses.Add(new EventBusRabbitMQ(multiRabbitMqPersistentConnections.GetConnections()[0], logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount));
eventBuses.Add(new EventBusRabbitMQ(multiRabbitMqPersistentConnections.GetConnections()[1], logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantB", subscriptionClientName, retryCount));
/*multiRabbitMqPersistentConnections.GetConnections().ForEach(conn =>
{ {
eventBuses.Add(new EventBusRabbitMQ(conn, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount)); eventBuses.Add(new EventBusRabbitMQ(conn, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount));
}); });*/
return new MultiEventBusRabbitMQ(eventBuses); return new MultiEventBusRabbitMQ(eventBuses);
}); });
@ -389,7 +394,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount);
});*/ });*/
} //}
services.AddSingleton<IEventBusSubscriptionsManager, InMemoryEventBusSubscriptionsManager>(); services.AddSingleton<IEventBusSubscriptionsManager, InMemoryEventBusSubscriptionsManager>();

View File

@ -311,7 +311,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API
factory.Password = configuration["EventBusPassword"]; factory.Password = configuration["EventBusPassword"];
} }
//factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"]))
@ -330,7 +330,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API
{ {
var subscriptionClientName = configuration["SubscriptionClientName"]; var subscriptionClientName = configuration["SubscriptionClientName"];
if (configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -344,7 +344,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -359,7 +359,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API
retryCount = int.Parse(configuration["EventBusRetryCount"]); retryCount = int.Parse(configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -91,7 +91,7 @@ namespace Microsoft.eShopOnContainers.Services.Locations.API
factory.Password = Configuration["EventBusPassword"]; factory.Password = Configuration["EventBusPassword"];
} }
//factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"]))
@ -246,7 +246,7 @@ namespace Microsoft.eShopOnContainers.Services.Locations.API
{ {
var subscriptionClientName = Configuration["SubscriptionClientName"]; var subscriptionClientName = Configuration["SubscriptionClientName"];
if (Configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -259,7 +259,7 @@ namespace Microsoft.eShopOnContainers.Services.Locations.API
eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope);
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -274,7 +274,7 @@ namespace Microsoft.eShopOnContainers.Services.Locations.API
retryCount = int.Parse(Configuration["EventBusRetryCount"]); retryCount = int.Parse(Configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -115,7 +115,7 @@
factory.Password = Configuration["EventBusPassword"]; factory.Password = Configuration["EventBusPassword"];
} }
// factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"]))
@ -260,7 +260,7 @@
{ {
var subscriptionClientName = Configuration["SubscriptionClientName"]; var subscriptionClientName = Configuration["SubscriptionClientName"];
if (Configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -273,7 +273,7 @@
eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope);
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -288,7 +288,7 @@
retryCount = int.Parse(Configuration["EventBusRetryCount"]); retryCount = int.Parse(Configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -319,7 +319,7 @@
factory.Password = configuration["EventBusPassword"]; factory.Password = configuration["EventBusPassword"];
} }
//factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
@ -364,7 +364,7 @@
{ {
var subscriptionClientName = configuration["SubscriptionClientName"]; var subscriptionClientName = configuration["SubscriptionClientName"];
if (configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -377,7 +377,7 @@
eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope);
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -392,7 +392,7 @@
retryCount = int.Parse(configuration["EventBusRetryCount"]); retryCount = int.Parse(configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -6,10 +6,10 @@
"SeqServerUrl": null, "SeqServerUrl": null,
"LogstashgUrl": null, "LogstashgUrl": null,
"MinimumLevel": { "MinimumLevel": {
"Default": "Information", "Default": "Verbose",
"Override": { "Override": {
"Microsoft": "Warning", "Microsoft": "Warning",
"Microsoft.eShopOnContainers": "Information", "Microsoft.eShopOnContainers": "Verbose",
"System": "Warning" "System": "Warning"
} }
} }

View File

@ -82,6 +82,8 @@ namespace Ordering.BackgroundTasks
factory.Password = Configuration["EventBusPassword"]; factory.Password = Configuration["EventBusPassword"];
} }
factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"]))
{ {
@ -123,7 +125,7 @@ namespace Ordering.BackgroundTasks
{ {
var subscriptionClientName = Configuration["SubscriptionClientName"]; var subscriptionClientName = Configuration["SubscriptionClientName"];
if (Configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -136,7 +138,7 @@ namespace Ordering.BackgroundTasks
eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope);
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -151,7 +153,7 @@ namespace Ordering.BackgroundTasks
retryCount = int.Parse(Configuration["EventBusRetryCount"]); retryCount = int.Parse(Configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -94,7 +94,7 @@ namespace Ordering.SignalrHub
factory.Password = Configuration["EventBusPassword"]; factory.Password = Configuration["EventBusPassword"];
} }
//factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"]))
@ -195,7 +195,7 @@ namespace Ordering.SignalrHub
{ {
var subscriptionClientName = Configuration["SubscriptionClientName"]; var subscriptionClientName = Configuration["SubscriptionClientName"];
if (Configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -208,7 +208,7 @@ namespace Ordering.SignalrHub
eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope);
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -223,7 +223,7 @@ namespace Ordering.SignalrHub
retryCount = int.Parse(Configuration["EventBusRetryCount"]); retryCount = int.Parse(Configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -72,7 +72,7 @@ namespace Payment.API
factory.Password = Configuration["EventBusPassword"]; factory.Password = Configuration["EventBusPassword"];
} }
// factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"]))
@ -140,7 +140,7 @@ namespace Payment.API
{ {
var subscriptionClientName = Configuration["SubscriptionClientName"]; var subscriptionClientName = Configuration["SubscriptionClientName"];
if (Configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (Configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -153,7 +153,7 @@ namespace Payment.API
eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope);
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -168,7 +168,7 @@ namespace Payment.API
retryCount = int.Parse(Configuration["EventBusRetryCount"]); retryCount = int.Parse(Configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -311,7 +311,7 @@
factory.Password = configuration["EventBusPassword"]; factory.Password = configuration["EventBusPassword"];
} }
//factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"]))
@ -355,7 +355,7 @@
{ {
var subscriptionClientName = configuration["SubscriptionClientName"]; var subscriptionClientName = configuration["SubscriptionClientName"];
if (configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -368,7 +368,7 @@
eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope);
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -383,7 +383,7 @@
retryCount = int.Parse(configuration["EventBusRetryCount"]); retryCount = int.Parse(configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }

View File

@ -232,7 +232,7 @@ namespace Webhooks.API
{ {
var subscriptionClientName = configuration["SubscriptionClientName"]; var subscriptionClientName = configuration["SubscriptionClientName"];
if (configuration.GetValue<bool>("AzureServiceBusEnabled")) /* if (configuration.GetValue<bool>("AzureServiceBusEnabled"))
{ {
services.AddSingleton<IEventBus, EventBusServiceBus>(sp => services.AddSingleton<IEventBus, EventBusServiceBus>(sp =>
{ {
@ -246,7 +246,7 @@ namespace Webhooks.API
}); });
} }
else else*/
{ {
services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp => services.AddSingleton<IEventBus, EventBusRabbitMQ>(sp =>
{ {
@ -261,7 +261,7 @@ namespace Webhooks.API
retryCount = int.Parse(configuration["EventBusRetryCount"]); retryCount = int.Parse(configuration["EventBusRetryCount"]);
} }
return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, "TenantA", subscriptionClientName, retryCount);
}); });
} }
@ -336,7 +336,7 @@ namespace Webhooks.API
factory.Password = configuration["EventBusPassword"]; factory.Password = configuration["EventBusPassword"];
} }
//factory.VirtualHost = "customisation"; factory.VirtualHost = "TenantA";
var retryCount = 5; var retryCount = 5;
if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"])) if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"]))