From e7ea0109e44ae47d6bdb951e70a6f1ac959d1af8 Mon Sep 17 00:00:00 2001 From: zedy Date: Fri, 25 Jun 2021 15:09:00 +0800 Subject: [PATCH] Update codes --- .../EventBus/Abstractions/IEventBus.cs | 2 - .../EventBusRabbitMQ/EventBusRabbitMQ.cs | 4 - .../EventBusRabbitMQ/EventBusRabbitMQ.csproj | 2 - .../DefaultServiceBusPersisterConnection.cs | 1 + .../EventBusServiceBus/EventBusServiceBus.cs | 9 +- src/Services/Basket/Basket.API/Startup.cs | 7 +- .../Catalog/Catalog.API/Catalog.API.csproj | 1 + src/Services/Catalog/Catalog.API/Startup.cs | 6 +- src/Services/Ordering/Ordering.API/Startup.cs | 83 ++++++++++--------- .../Extensions/CustomExtensionMethods.cs | 6 +- .../Ordering/Ordering.SignalrHub/Startup.cs | 6 +- src/Services/Payment/Payment.API/Startup.cs | 6 +- src/Services/Webhooks/Webhooks.API/Startup.cs | 6 +- 13 files changed, 71 insertions(+), 68 deletions(-) diff --git a/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs b/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs index c84b6f56f..4c9758a40 100644 --- a/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs +++ b/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs @@ -19,7 +19,5 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions void Unsubscribe() where TH : IIntegrationEventHandler where T : IntegrationEvent; - - void Dispose(); } } diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs index 7ab1f77c1..415da4283 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs @@ -4,7 +4,6 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions; using Microsoft.Extensions.Logging; -using Azure.Messaging.ServiceBus; using Polly; using Polly.Retry; using RabbitMQ.Client; @@ -28,7 +27,6 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ private readonly IEventBusSubscriptionsManager _subsManager; private readonly ILifetimeScope _autofac; private readonly int _retryCount; - private readonly ServiceBusProcessor _processor; private IModel _consumerChannel; private string _queueName; @@ -44,7 +42,6 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ _autofac = autofac; _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; - this._processor = EventBusServiceBus.EventBusServiceBus.DeliverProcessor(); } private void SubsManager_OnEventRemoved(object sender, string eventName) @@ -181,7 +178,6 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ } _subsManager.Clear(); - _processor.CloseAsync().GetAwaiter().GetResult(); } private void StartBasicConsume() diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj index 00d216d19..f8dfc42e5 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj @@ -7,7 +7,6 @@ - @@ -15,7 +14,6 @@ - diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs index 4793f8f21..e1e4f7f2a 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/DefaultServiceBusPersisterConnection.cs @@ -55,6 +55,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus if (_disposed) return; _disposed = true; + _topicClient.DisposeAsync().GetAwaiter().GetResult(); } } } diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs index 8b1aac516..028a92fa6 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs @@ -11,7 +11,7 @@ using System.Text.Json; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus { - public class EventBusServiceBus : IEventBus + public class EventBusServiceBus : IEventBus, IDisposable { private readonly IServiceBusPersisterConnection _serviceBusPersisterConnection; private readonly ILogger _logger; @@ -20,7 +20,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus private readonly string _topicName; private readonly string _subscriptionName; private ServiceBusSender _sender; - private static ServiceBusProcessor _processor; + private ServiceBusProcessor _processor; private readonly string AUTOFAC_SCOPE_NAME = "eshop_event_bus"; private const string INTEGRATION_EVENT_SUFFIX = "IntegrationEvent"; @@ -131,11 +131,6 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus _processor.CloseAsync().GetAwaiter().GetResult(); } - public static ServiceBusProcessor DeliverProcessor() - { - return _processor; - } - private async Task RegisterSubscriptionClientMessageHandlerAsync() { _processor.ProcessMessageAsync += diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 6f88a9078..15f7ef8d4 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -1,5 +1,6 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using Azure.Messaging.ServiceBus; using Basket.API.Infrastructure.Filters; using Basket.API.IntegrationEvents.EventHandling; using Basket.API.IntegrationEvents.Events; @@ -122,7 +123,6 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API { var serviceBusConnectionString = Configuration["EventBusConnection"]; - var subscriptionClientName = Configuration["SubscriptionClientName"]; return new DefaultServiceBusPersisterConnection(serviceBusConnectionString); }); } @@ -283,8 +283,9 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - string topicName = "topicName"; - string subscriptionName = "subscriptionName"; + var serviceBusConnectionString = Configuration["EventBusConnection"]; + string topicName = ServiceBusConnectionStringProperties.Parse(serviceBusConnectionString).EntityPath; + string subscriptionName = Configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, topicName, subscriptionName); diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index e49538fdb..5890d2905 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -50,6 +50,7 @@ + diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 4634735a1..924f78444 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -1,5 +1,6 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using Azure.Messaging.ServiceBus; using Catalog.API.Grpc; using global::Catalog.API.Infrastructure.Filters; using global::Catalog.API.IntegrationEvents; @@ -331,8 +332,9 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - string topicName = "topicName"; - string subscriptionName = "subscriptionName"; + var serviceBusConnectionString = configuration["EventBusConnection"]; + string topicName = ServiceBusConnectionStringProperties.Parse(serviceBusConnectionString).EntityPath; + string subscriptionName = configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, topicName, subscriptionName); diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 031e5d9ee..4a80aa77e 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -1,42 +1,44 @@ -namespace Microsoft.eShopOnContainers.Services.Ordering.API -{ - using AspNetCore.Http; - using Autofac; - using Autofac.Extensions.DependencyInjection; - using global::Ordering.API.Application.IntegrationEvents; - using global::Ordering.API.Application.IntegrationEvents.Events; - using global::Ordering.API.Infrastructure.Filters; - using GrpcOrdering; - using HealthChecks.UI.Client; - using Infrastructure.AutofacModules; - using Infrastructure.Filters; - using Infrastructure.Services; - using Microsoft.AspNetCore.Builder; - using Microsoft.AspNetCore.Diagnostics.HealthChecks; - using Microsoft.AspNetCore.Hosting; - using Microsoft.AspNetCore.Mvc; - using Microsoft.EntityFrameworkCore; - using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; - using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; - using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; - using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; - using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF; - using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services; - using Microsoft.eShopOnContainers.Services.Ordering.API.Controllers; - using Microsoft.Extensions.Configuration; - using Microsoft.Extensions.DependencyInjection; - using Microsoft.Extensions.Diagnostics.HealthChecks; - using Microsoft.Extensions.Logging; - using Microsoft.OpenApi.Models; - using Ordering.Infrastructure; - using RabbitMQ.Client; - using System; - using System.Collections.Generic; - using System.Data.Common; - using System.IdentityModel.Tokens.Jwt; - using System.IO; - using System.Reflection; +using Microsoft.AspNetCore.Http; +using Autofac; +using Autofac.Extensions.DependencyInjection; +using Azure.Messaging.ServiceBus; +using global::Ordering.API.Application.IntegrationEvents; +using global::Ordering.API.Application.IntegrationEvents.Events; +using global::Ordering.API.Infrastructure.Filters; +using GrpcOrdering; +using HealthChecks.UI.Client; +using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules; +using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Filters; +using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; +using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF; +using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services; +using Microsoft.eShopOnContainers.Services.Ordering.API.Controllers; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; +using Ordering.Infrastructure; +using RabbitMQ.Client; +using System; +using System.Collections.Generic; +using System.Data.Common; +using System.IdentityModel.Tokens.Jwt; +using System.IO; +using System.Reflection; +using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; +namespace Microsoft.eShopOnContainers.Services.Ordering.API +{ public class Startup { public Startup(IConfiguration configuration) @@ -373,8 +375,9 @@ var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - string topicName = "topicName"; - string subscriptionName = "subscriptionName"; + var serviceBusConnectionString = configuration["EventBusConnection"]; + string topicName = ServiceBusConnectionStringProperties.Parse(serviceBusConnectionString).EntityPath; + string subscriptionName = configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, topicName, subscriptionName); diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs index d8acb8b30..ff7f2ea82 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs @@ -1,4 +1,5 @@ using Autofac; +using Azure.Messaging.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; @@ -63,8 +64,9 @@ namespace Ordering.BackgroundTasks.Extensions var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - string topicName = "topicName"; - string subscriptionName = "subscriptionName"; + var serviceBusConnectionString = configuration["EventBusConnection"]; + string topicName = ServiceBusConnectionStringProperties.Parse(serviceBusConnectionString).EntityPath; + string subscriptionName = configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, topicName, subscriptionName); }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index 1c2740814..f72dbc093 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -1,5 +1,6 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using Azure.Messaging.ServiceBus; using HealthChecks.UI.Client; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; @@ -211,8 +212,9 @@ namespace Ordering.SignalrHub var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - string topicName = "topicName"; - string subscriptionName = "subscriptionName"; + var serviceBusConnectionString = Configuration["EventBusConnection"]; + string topicName = ServiceBusConnectionStringProperties.Parse(serviceBusConnectionString).EntityPath; + string subscriptionName = Configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, topicName, subscriptionName); diff --git a/src/Services/Payment/Payment.API/Startup.cs b/src/Services/Payment/Payment.API/Startup.cs index 5c0045407..01d81fed3 100644 --- a/src/Services/Payment/Payment.API/Startup.cs +++ b/src/Services/Payment/Payment.API/Startup.cs @@ -1,5 +1,6 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using Azure.Messaging.ServiceBus; using HealthChecks.UI.Client; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; @@ -128,8 +129,9 @@ namespace Payment.API var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - string topicName = "topicName"; - string subscriptionName = "subscriptionName"; + var serviceBusConnectionString = Configuration["EventBusConnection"]; + string topicName = ServiceBusConnectionStringProperties.Parse(serviceBusConnectionString).EntityPath; + string subscriptionName = Configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, topicName, subscriptionName); diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index 48fb18857..c7a359186 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -1,5 +1,6 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using Azure.Messaging.ServiceBus; using Devspaces.Support; using HealthChecks.UI.Client; using Microsoft.AspNetCore.Authentication.JwtBearer; @@ -214,8 +215,9 @@ namespace Webhooks.API var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); - string topicName = "topicName"; - string subscriptionName = "subscriptionName"; + var serviceBusConnectionString = configuration["EventBusConnection"]; + string topicName = ServiceBusConnectionStringProperties.Parse(serviceBusConnectionString).EntityPath; + string subscriptionName = configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, topicName, subscriptionName);